diff --git a/results/Basic/eac_tamarin.err.45221786 b/results/45991167.err.ALL_CLASSIC_EAC_TAMARIN
similarity index 86%
rename from results/Basic/eac_tamarin.err.45221786
rename to results/45991167.err.ALL_CLASSIC_EAC_TAMARIN
index 1f61aae55c21ecd2bc906c49f8eb899cc6d49e2d..35cf59a4de87742e8526e575ef29d8946ab1831a 100644
--- a/results/Basic/eac_tamarin.err.45221786
+++ b/results/45991167.err.ALL_CLASSIC_EAC_TAMARIN
@@ -30,3 +30,5 @@
 [Saturating Sources] Step 2/5
 [Saturating Sources] Step 1/5
 [Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991167.out.ALL_CLASSIC_EAC_TAMARIN b/results/45991167.out.ALL_CLASSIC_EAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..9db40ed75b648a4229ffcbd62775a678e5ca650f
--- /dev/null
+++ b/results/45991167.out.ALL_CLASSIC_EAC_TAMARIN
@@ -0,0 +1,21360 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory ClassicEAC begin
+
+// Function signature and definition of the equational theory E
+
+builtins: diffie-hellman
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, fst/1, kdf_enc/2, kdf_mac/2, mac/2, pair/2, pk/1, sign/2,
+           snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    fst(<x.1, x.2>) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  --[ TestMe( ) ]->
+   [ !Pk( $A, 'g'^~ltk, 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( 'g'^~ltk )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~skTe ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [
+   Out( <certT, 'g'^~skTe, '1', 't'> ), Out( ~iid ),
+   TAInitT( <$T, ~iid>, ~skTe )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [ In( <certT, pkTe, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ) ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, '2', 'c'> ),
+   TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [ In( <certT, pkTe, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ) ]
+    --[ Eq( z, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, '2', 'c'> ),
+     TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
+     ]
+    variants (modulo AC)
+    1. certT = certT.13
+       z     = verify(cert_sig(certT.13),
+                      <cert_pk(certT.13), cert_id(certT.13), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(x.14, sign(<x.14, x.15, 'terminal'>, ca_sk), x.15)
+       z     = true
+    
+    3. certT = cert(x.15, x.16, x.17)
+       z     = verify(x.16, <x.15, x.17, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
+   !Ltk( $T, ~skT, 'terminal' )
+   ]
+  -->
+   [
+   Out( <sign(<id_c, r1, 'g'^skTe>, ~skT), '3', 't'> ),
+   TAResponseT( <$T, iid>, skTe, id_c )
+   ]
+
+  /*
+  rule (modulo AC) TA_RESPONSE_T:
+     [
+     In( <id_c, r1, '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
+     !Ltk( $T, ~skT, 'terminal' )
+     ]
+    -->
+     [
+     Out( <sign(<id_c, r1, z>, ~skT), '3', 't'> ),
+     TAResponseT( <$T, iid>, skTe, id_c )
+     ]
+    variants (modulo AC)
+    1. skTe  = skTe.12
+       z     = 'g'^skTe.12
+    
+    2. skTe  = one
+       z     = 'g'
+  */
+
+rule (modulo E) TA_COMPLETE_C:
+   [ In( <s, '3', 't'> ), TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
+  --[
+  Eq( verify(s, <id_c, r1, pkTe>, cert_pk(certT)), true ),
+  CompletedTA( $C, iid, cert_id(certT) )
+  ]->
+   [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [ In( <s, '3', 't'> ), TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
+    --[ Eq( z, true ), CompletedTA( $C, iid, z.1 ) ]->
+     [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
+    variants (modulo AC)
+    1. certT = certT.18
+       id_c  = id_c.19
+       pkTe  = pkTe.21
+       r1    = r1.22
+       s     = s.23
+       z     = verify(s.23, <id_c.19, r1.22, pkTe.21>, cert_pk(certT.18))
+       z.1   = cert_id(certT.18)
+    
+    2. certT = cert(x.41, x.42, z.31)
+       id_c  = id_c.23
+       pkTe  = pkTe.25
+       r1    = r1.26
+       s     = s.27
+       z     = verify(s.27, <id_c.23, r1.26, pkTe.25>, x.41)
+       z.1   = z.31
+    
+    3. certT = cert(pk(x.41), x.42, z.31)
+       id_c  = id_c.23
+       pkTe  = pkTe.25
+       r1    = r1.26
+       s     = sign(<id_c.23, r1.26, pkTe.25>, x.41)
+       z     = true
+       z.1   = z.31
+  */
+
+rule (modulo E) CA_INIT_C:
+   [
+   !Cert( $C, certC, 'chip' ), Fr( ~r2 ),
+   TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 )
+   ]
+  -->
+   [
+   Out( <certC, ~r2, '4', 'c'> ), Out( iid ),
+   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, ~r2 )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_INIT_T:
+   [ In( <certC, r2, '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c ) ]
+  --[ Eq( verify_cert(certC, 'chip'), true ) ]->
+   [ Out( <'g'^skTe, '5', 't'> ), CAInitT( <$T, iid>, skTe, id_c, certC ) ]
+
+  /*
+  rule (modulo AC) CA_INIT_T:
+     [ In( <certC, r2, '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c ) ]
+    --[ Eq( z.1, true ) ]->
+     [ Out( <z, '5', 't'> ), CAInitT( <$T, iid>, skTe, id_c, certC ) ]
+    variants (modulo AC)
+    1. certC = certC.14
+       skTe  = one
+       z     = 'g'
+       z.1   = verify(cert_sig(certC.14),
+                      <cert_pk(certC.14), cert_id(certC.14), 'chip'>, pk(ca_sk))
+    
+    2. certC = certC.18
+       skTe  = skTe.22
+       z     = 'g'^skTe.22
+       z.1   = verify(cert_sig(certC.18),
+                      <cert_pk(certC.18), cert_id(certC.18), 'chip'>, pk(ca_sk))
+    
+    3. certC = cert(x.15, sign(<x.15, x.16, 'chip'>, ca_sk), x.16)
+       skTe  = one
+       z     = 'g'
+       z.1   = true
+    
+    4. certC = cert(x.16, x.17, x.18)
+       skTe  = one
+       z     = 'g'
+       z.1   = verify(x.17, <x.16, x.18, 'chip'>, pk(ca_sk))
+    
+    5. certC = cert(x.64, sign(<x.64, x.65, 'chip'>, ca_sk), x.65)
+       skTe  = skTe.36
+       z     = 'g'^skTe.36
+       z.1   = true
+    
+    6. certC = cert(x.65, x.66, x.67)
+       skTe  = skTe.37
+       z     = 'g'^skTe.37
+       z.1   = verify(x.66, <x.65, x.67, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) CA_FINISH_C:
+   [
+   In( <pkTe_t, '5', 't'> ),
+   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ),
+   !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( pkTe_t, pkTe ),
+  Completed( <kdf_enc(pkTe^~skC, r2), kdf_mac(pkTe^~skC, r2)>,
+             <certT, certC, pkTe, 'g'^~skC, id_c, r2>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <r2, mac(pkTe, kdf_mac(pkTe^~skC, r2)), '6', 'c'> ),
+   CAFinishC( $C, cert_id(certT), kdf_enc(pkTe^~skC, r2) )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_C:
+     [
+     In( <pkTe_t, '5', 't'> ),
+     CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ),
+     !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( pkTe_t, pkTe ),
+    Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>,
+               <certT, certC, pkTe, 'g'^~skC, id_c, r2>, $C, 'chip', z.1
+    )
+    ]->
+     [
+     Out( <r2, mac(pkTe, kdf_mac(z, r2)), '6', 'c'> ),
+     CAFinishC( $C, z.1, kdf_enc(z, r2) )
+     ]
+    variants (modulo AC)
+     1. ~skC  = ~skC.24
+        certT = certT.26
+        pkTe  = pkTe.29
+        z     = pkTe.29^~skC.24
+        z.1   = cert_id(certT.26)
+    
+     2. ~skC  = ~skC.31
+        certT = certT.33
+        pkTe  = z.43^inv(~skC.31)
+        z     = z.43
+        z.1   = cert_id(certT.33)
+    
+     3. ~skC  = ~skC.170
+        certT = certT.172
+        pkTe  = x.336^x.337
+        z     = x.336^(~skC.170*x.337)
+        z.1   = cert_id(certT.172)
+    
+     4. ~skC  = ~skC.170
+        certT = cert(x.336, x.337, z.185)
+        pkTe  = pkTe.175
+        z     = pkTe.175^~skC.170
+        z.1   = z.185
+    
+     5. ~skC  = ~skC.172
+        certT = cert(x.340, x.341, z.187)
+        pkTe  = z.184^inv(~skC.172)
+        z     = z.184
+        z.1   = z.187
+    
+     6. ~skC  = ~skC.175
+        certT = certT.177
+        pkTe  = x.346^inv((~skC.175*x.347))
+        z     = x.346^inv(x.347)
+        z.1   = cert_id(certT.177)
+    
+     7. ~skC  = ~skC.175
+        certT = certT.177
+        pkTe  = x.346^(x.347*inv(~skC.175))
+        z     = x.346^x.347
+        z.1   = cert_id(certT.177)
+    
+     8. ~skC  = ~skC.175
+        certT = cert(x.341, x.342, z.190)
+        pkTe  = x.346^x.347
+        z     = x.346^(~skC.175*x.347)
+        z.1   = z.190
+    
+     9. ~skC  = ~skC.176
+        certT = certT.178
+        pkTe  = x.347^(x.348*inv((~skC.176*x.349)))
+        z     = x.347^(x.348*inv(x.349))
+        z.1   = cert_id(certT.178)
+    
+    10. ~skC  = ~skC.177
+        certT = cert(x.345, x.346, z.192)
+        pkTe  = x.350^inv((~skC.177*x.351))
+        z     = x.350^inv(x.351)
+        z.1   = z.192
+    
+    11. ~skC  = ~skC.177
+        certT = cert(x.345, x.346, z.192)
+        pkTe  = x.350^(x.351*inv(~skC.177))
+        z     = x.350^x.351
+        z.1   = z.192
+    
+    12. ~skC  = ~skC.178
+        certT = cert(x.346, x.347, z.193)
+        pkTe  = x.351^(x.352*inv((~skC.178*x.353)))
+        z     = x.351^(x.352*inv(x.353))
+        z.1   = z.193
+    
+    13. certT = certT.19
+        pkTe  = DH_neutral
+        z     = DH_neutral
+        z.1   = cert_id(certT.19)
+    
+    14. certT = cert(x.201, x.202, z.110)
+        pkTe  = DH_neutral
+        z     = DH_neutral
+        z.1   = z.110
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <r2, tag, '6', 'c'> ), CAInitT( <$T, iid>, skTe, id_c, certC ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( tag, mac('g'^skTe, kdf_mac(cert_pk(certC)^skTe, r2)) ),
+  Completed( <kdf_enc(cert_pk(certC)^skTe, r2), 
+              kdf_mac(cert_pk(certC)^skTe, r2)>,
+             <certT, certC, 'g'^skTe, cert_pk(certC), id_c, r2>, $T, 'terminal',
+             cert_id(certC)
+  ),
+  Finished( <certT, certC, 'g'^skTe, cert_pk(certC), id_c, r2> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T, kdf_enc(cert_pk(certC)^skTe, r2) ),
+   !SessionReveal( <certT, certC, 'g'^skTe, cert_pk(certC), id_c, r2>,
+                   <kdf_enc(cert_pk(certC)^skTe, r2), kdf_mac(cert_pk(certC)^skTe, r2)>
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <r2, tag, '6', 'c'> ), CAInitT( <$T, iid>, skTe, id_c, certC ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( tag, mac(z.2, kdf_mac(z.1, r2)) ),
+    Completed( <kdf_enc(z.1, r2), kdf_mac(z.1, r2)>,
+               <certT, certC, z.2, z.3, id_c, r2>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, z.2, z.3, id_c, r2> )
+    ]->
+     [
+     CAFinishT( z, $T, kdf_enc(z.1, r2) ),
+     !SessionReveal( <certT, certC, z.2, z.3, id_c, r2>,
+                     <kdf_enc(z.1, r2), kdf_mac(z.1, r2)>
+     )
+     ]
+    variants (modulo AC)
+     1. certC = certC.17
+        skTe  = one
+        z     = cert_id(certC.17)
+        z.1   = cert_pk(certC.17)
+        z.2   = 'g'
+        z.3   = cert_pk(certC.17)
+    
+     2. certC = certC.22
+        skTe  = skTe.27
+        z     = cert_id(certC.22)
+        z.1   = cert_pk(certC.22)^skTe.27
+        z.2   = 'g'^skTe.27
+        z.3   = cert_pk(certC.22)
+    
+     3. certC = cert(z.27, x.39, z.26)
+        skTe  = one
+        z     = z.26
+        z.1   = z.27
+        z.2   = 'g'
+        z.3   = z.27
+    
+     4. certC = cert(z.44, x.64, z.41)
+        skTe  = skTe.36
+        z     = z.41
+        z.1   = z.44^skTe.36
+        z.2   = 'g'^skTe.36
+        z.3   = z.44
+    
+     5. certC = cert(DH_neutral, x.62, z.40)
+        skTe  = skTe.35
+        z     = z.40
+        z.1   = DH_neutral
+        z.2   = 'g'^skTe.35
+        z.3   = DH_neutral
+    
+     6. certC = cert(z.28^x.40, x.41, z.27)
+        skTe  = inv(x.40)
+        z     = z.27
+        z.1   = z.28
+        z.2   = 'g'^inv(x.40)
+        z.3   = z.28^x.40
+    
+     7. certC = cert(z.29^(x.41*inv(x.42)), x.43, z.28)
+        skTe  = (x.42*inv(x.41))
+        z     = z.28
+        z.1   = z.29
+        z.2   = 'g'^(x.42*inv(x.41))
+        z.3   = z.29^(x.41*inv(x.42))
+    
+     8. certC = cert(x.40^(x.41*x.42), x.43, z.28)
+        skTe  = inv(x.41)
+        z     = z.28
+        z.1   = x.40^x.42
+        z.2   = 'g'^inv(x.41)
+        z.3   = x.40^(x.41*x.42)
+    
+     9. certC = cert(x.41^(x.42*x.43*inv(x.44)), x.45, z.29)
+        skTe  = (x.44*inv(x.43))
+        z     = z.29
+        z.1   = x.41^x.42
+        z.2   = 'g'^(x.44*inv(x.43))
+        z.3   = x.41^(x.42*x.43*inv(x.44))
+    
+    10. certC = cert(x.41^(x.42*inv((x.43*x.44))), x.45, z.29)
+        skTe  = (x.44*inv(x.42))
+        z     = z.29
+        z.1   = x.41^inv(x.43)
+        z.2   = 'g'^(x.44*inv(x.42))
+        z.3   = x.41^(x.42*inv((x.43*x.44)))
+    
+    11. certC = cert(x.42^(x.43*x.44*inv((x.45*x.46))), x.47, z.30)
+        skTe  = (x.46*inv(x.44))
+        z     = z.30
+        z.1   = x.42^(x.43*inv(x.45))
+        z.2   = 'g'^(x.46*inv(x.44))
+        z.3   = x.42^(x.43*x.44*inv((x.45*x.46)))
+    
+    12. certC = cert(z.43^inv(skTe.37), x.66, z.42)
+        skTe  = skTe.37
+        z     = z.42
+        z.1   = z.43
+        z.2   = 'g'^skTe.37
+        z.3   = z.43^inv(skTe.37)
+    
+    13. certC = cert(x.45^x.46, x.47, z.33)
+        skTe  = inv((x.46*x.53))
+        z     = z.33
+        z.1   = x.45^inv(x.53)
+        z.2   = 'g'^inv((x.46*x.53))
+        z.3   = x.45^x.46
+    
+    14. certC = cert(x.45^x.46, x.47, z.33)
+        skTe  = (x.53*inv(x.46))
+        z     = z.33
+        z.1   = x.45^x.53
+        z.2   = 'g'^(x.53*inv(x.46))
+        z.3   = x.45^x.46
+    
+    15. certC = cert(x.45^inv(x.46), x.47, z.33)
+        skTe  = inv(x.53)
+        z     = z.33
+        z.1   = x.45^inv((x.46*x.53))
+        z.2   = 'g'^inv(x.53)
+        z.3   = x.45^inv(x.46)
+    
+    16. certC = cert(x.45^inv(x.46), x.47, z.33)
+        skTe  = (x.46*x.53)
+        z     = z.33
+        z.1   = x.45^x.53
+        z.2   = 'g'^(x.46*x.53)
+        z.3   = x.45^inv(x.46)
+    
+    17. certC = cert(x.46^x.47, x.48, z.34)
+        skTe  = (x.54*inv((x.47*x.55)))
+        z     = z.34
+        z.1   = x.46^(x.54*inv(x.55))
+        z.2   = 'g'^(x.54*inv((x.47*x.55)))
+        z.3   = x.46^x.47
+    
+    18. certC = cert(x.46^inv(x.47), x.48, z.34)
+        skTe  = (x.54*inv(x.55))
+        z     = z.34
+        z.1   = x.46^(x.54*inv((x.47*x.55)))
+        z.2   = 'g'^(x.54*inv(x.55))
+        z.3   = x.46^inv(x.47)
+    
+    19. certC = cert(x.46^inv((x.47*x.48)), x.49, z.34)
+        skTe  = (x.47*x.55)
+        z     = z.34
+        z.1   = x.46^(x.55*inv(x.48))
+        z.2   = 'g'^(x.47*x.55)
+        z.3   = x.46^inv((x.47*x.48))
+    
+    20. certC = cert(x.46^inv((x.47*x.48)), x.49, z.34)
+        skTe  = (x.47*inv(x.55))
+        z     = z.34
+        z.1   = x.46^inv((x.48*x.55))
+        z.2   = 'g'^(x.47*inv(x.55))
+        z.3   = x.46^inv((x.47*x.48))
+    
+    21. certC = cert(x.46^(x.47*x.48), x.49, z.34)
+        skTe  = inv((x.47*x.55))
+        z     = z.34
+        z.1   = x.46^(x.48*inv(x.55))
+        z.2   = 'g'^inv((x.47*x.55))
+        z.3   = x.46^(x.47*x.48)
+    
+    22. certC = cert(x.46^(x.47*x.48), x.49, z.34)
+        skTe  = (x.55*inv(x.47))
+        z     = z.34
+        z.1   = x.46^(x.48*x.55)
+        z.2   = 'g'^(x.55*inv(x.47))
+        z.3   = x.46^(x.47*x.48)
+    
+    23. certC = cert(x.46^(x.47*inv(x.48)), x.49, z.34)
+        skTe  = inv(x.55)
+        z     = z.34
+        z.1   = x.46^(x.47*inv((x.48*x.55)))
+        z.2   = 'g'^inv(x.55)
+        z.3   = x.46^(x.47*inv(x.48))
+    
+    24. certC = cert(x.46^(x.47*inv(x.48)), x.49, z.34)
+        skTe  = inv((x.47*x.55))
+        z     = z.34
+        z.1   = x.46^inv((x.48*x.55))
+        z.2   = 'g'^inv((x.47*x.55))
+        z.3   = x.46^(x.47*inv(x.48))
+    
+    25. certC = cert(x.46^(x.47*inv(x.48)), x.49, z.34)
+        skTe  = (x.48*x.55)
+        z     = z.34
+        z.1   = x.46^(x.47*x.55)
+        z.2   = 'g'^(x.48*x.55)
+        z.3   = x.46^(x.47*inv(x.48))
+    
+    26. certC = cert(x.46^(x.47*inv(x.48)), x.49, z.34)
+        skTe  = (x.48*x.55*inv(x.47))
+        z     = z.34
+        z.1   = x.46^x.55
+        z.2   = 'g'^(x.48*x.55*inv(x.47))
+        z.3   = x.46^(x.47*inv(x.48))
+    
+    27. certC = cert(x.46^(x.47*inv(x.48)), x.49, z.34)
+        skTe  = (x.48*inv((x.47*x.55)))
+        z     = z.34
+        z.1   = x.46^inv(x.55)
+        z.2   = 'g'^(x.48*inv((x.47*x.55)))
+        z.3   = x.46^(x.47*inv(x.48))
+    
+    28. certC = cert(x.47^inv((x.48*x.49)), x.50, z.35)
+        skTe  = (x.48*x.56*inv(x.57))
+        z     = z.35
+        z.1   = x.47^(x.56*inv((x.49*x.57)))
+        z.2   = 'g'^(x.48*x.56*inv(x.57))
+        z.3   = x.47^inv((x.48*x.49))
+    
+    29. certC = cert(x.47^(x.48*x.49), x.50, z.35)
+        skTe  = (x.56*inv((x.48*x.57)))
+        z     = z.35
+        z.1   = x.47^(x.49*x.56*inv(x.57))
+        z.2   = 'g'^(x.56*inv((x.48*x.57)))
+        z.3   = x.47^(x.48*x.49)
+    
+    30. certC = cert(x.47^(x.48*x.49*inv(x.50)), x.51, z.35)
+        skTe  = inv((x.49*x.57))
+        z     = z.35
+        z.1   = x.47^(x.48*inv((x.50*x.57)))
+        z.2   = 'g'^inv((x.49*x.57))
+        z.3   = x.47^(x.48*x.49*inv(x.50))
+    
+    31. certC = cert(x.47^(x.48*x.49*inv(x.50)), x.51, z.35)
+        skTe  = (x.50*x.57*inv(x.48))
+        z     = z.35
+        z.1   = x.47^(x.49*x.57)
+        z.2   = 'g'^(x.50*x.57*inv(x.48))
+        z.3   = x.47^(x.48*x.49*inv(x.50))
+    
+    32. certC = cert(x.47^(x.48*x.49*inv(x.50)), x.51, z.35)
+        skTe  = (x.50*inv((x.48*x.57)))
+        z     = z.35
+        z.1   = x.47^(x.49*inv(x.57))
+        z.2   = 'g'^(x.50*inv((x.48*x.57)))
+        z.3   = x.47^(x.48*x.49*inv(x.50))
+    
+    33. certC = cert(x.47^(x.48*inv(x.49)), x.50, z.35)
+        skTe  = (x.49*x.56*inv((x.48*x.57)))
+        z     = z.35
+        z.1   = x.47^(x.56*inv(x.57))
+        z.2   = 'g'^(x.49*x.56*inv((x.48*x.57)))
+        z.3   = x.47^(x.48*inv(x.49))
+    
+    34. certC = cert(x.47^(x.48*inv(x.49)), x.50, z.35)
+        skTe  = (x.56*inv(x.57))
+        z     = z.35
+        z.1   = x.47^(x.48*x.56*inv((x.49*x.57)))
+        z.2   = 'g'^(x.56*inv(x.57))
+        z.3   = x.47^(x.48*inv(x.49))
+    
+    35. certC = cert(x.47^(x.48*inv(x.49)), x.50, z.35)
+        skTe  = (x.56*inv((x.48*x.57)))
+        z     = z.35
+        z.1   = x.47^(x.56*inv((x.49*x.57)))
+        z.2   = 'g'^(x.56*inv((x.48*x.57)))
+        z.3   = x.47^(x.48*inv(x.49))
+    
+    36. certC = cert(x.47^(x.48*inv((x.49*x.50))), x.51, z.35)
+        skTe  = (x.49*x.57)
+        z     = z.35
+        z.1   = x.47^(x.48*x.57*inv(x.50))
+        z.2   = 'g'^(x.49*x.57)
+        z.3   = x.47^(x.48*inv((x.49*x.50)))
+    
+    37. certC = cert(x.47^(x.48*inv((x.49*x.50))), x.51, z.35)
+        skTe  = (x.49*x.57*inv(x.48))
+        z     = z.35
+        z.1   = x.47^(x.57*inv(x.50))
+        z.2   = 'g'^(x.49*x.57*inv(x.48))
+        z.3   = x.47^(x.48*inv((x.49*x.50)))
+    
+    38. certC = cert(x.47^(x.48*inv((x.49*x.50))), x.51, z.35)
+        skTe  = (x.49*inv(x.57))
+        z     = z.35
+        z.1   = x.47^(x.48*inv((x.50*x.57)))
+        z.2   = 'g'^(x.49*inv(x.57))
+        z.3   = x.47^(x.48*inv((x.49*x.50)))
+    
+    39. certC = cert(x.47^(x.48*inv((x.49*x.50))), x.51, z.35)
+        skTe  = (x.49*inv((x.48*x.57)))
+        z     = z.35
+        z.1   = x.47^inv((x.50*x.57))
+        z.2   = 'g'^(x.49*inv((x.48*x.57)))
+        z.3   = x.47^(x.48*inv((x.49*x.50)))
+    
+    40. certC = cert(x.48^(x.49*x.50*inv(x.51)), x.52, z.36)
+        skTe  = (x.51*x.58*inv((x.49*x.59)))
+        z     = z.36
+        z.1   = x.48^(x.50*x.58*inv(x.59))
+        z.2   = 'g'^(x.51*x.58*inv((x.49*x.59)))
+        z.3   = x.48^(x.49*x.50*inv(x.51))
+    
+    41. certC = cert(x.48^(x.49*x.50*inv(x.51)), x.52, z.36)
+        skTe  = (x.58*inv((x.49*x.59)))
+        z     = z.36
+        z.1   = x.48^(x.50*x.58*inv((x.51*x.59)))
+        z.2   = 'g'^(x.58*inv((x.49*x.59)))
+        z.3   = x.48^(x.49*x.50*inv(x.51))
+    
+    42. certC = cert(x.48^(x.49*x.50*inv((x.51*x.52))), x.53, z.36)
+        skTe  = (x.51*x.59*inv(x.49))
+        z     = z.36
+        z.1   = x.48^(x.50*x.59*inv(x.52))
+        z.2   = 'g'^(x.51*x.59*inv(x.49))
+        z.3   = x.48^(x.49*x.50*inv((x.51*x.52)))
+    
+    43. certC = cert(x.48^(x.49*x.50*inv((x.51*x.52))), x.53, z.36)
+        skTe  = (x.51*inv((x.49*x.59)))
+        z     = z.36
+        z.1   = x.48^(x.50*inv((x.52*x.59)))
+        z.2   = 'g'^(x.51*inv((x.49*x.59)))
+        z.3   = x.48^(x.49*x.50*inv((x.51*x.52)))
+    
+    44. certC = cert(x.48^(x.49*inv((x.50*x.51))), x.52, z.36)
+        skTe  = (x.50*x.58*inv(x.59))
+        z     = z.36
+        z.1   = x.48^(x.49*x.58*inv((x.51*x.59)))
+        z.2   = 'g'^(x.50*x.58*inv(x.59))
+        z.3   = x.48^(x.49*inv((x.50*x.51)))
+    
+    45. certC = cert(x.48^(x.49*inv((x.50*x.51))), x.52, z.36)
+        skTe  = (x.50*x.58*inv((x.49*x.59)))
+        z     = z.36
+        z.1   = x.48^(x.58*inv((x.51*x.59)))
+        z.2   = 'g'^(x.50*x.58*inv((x.49*x.59)))
+        z.3   = x.48^(x.49*inv((x.50*x.51)))
+    
+    46. certC = cert(x.49^(x.50*x.51*inv((x.52*x.53))), x.54, z.37)
+        skTe  = (x.52*x.60*inv((x.50*x.61)))
+        z     = z.37
+        z.1   = x.49^(x.51*x.60*inv((x.53*x.61)))
+        z.2   = 'g'^(x.52*x.60*inv((x.50*x.61)))
+        z.3   = x.49^(x.50*x.51*inv((x.52*x.53)))
+    
+    47. certC = cert(x.64^x.65, x.66, z.42)
+        skTe  = skTe.37
+        z     = z.42
+        z.1   = x.64^(skTe.37*x.65)
+        z.2   = 'g'^skTe.37
+        z.3   = x.64^x.65
+    
+    48. certC = cert(x.65^inv((skTe.38*x.66)), x.68, z.43)
+        skTe  = skTe.38
+        z     = z.43
+        z.1   = x.65^inv(x.66)
+        z.2   = 'g'^skTe.38
+        z.3   = x.65^inv((skTe.38*x.66))
+    
+    49. certC = cert(x.65^(x.66*inv(skTe.38)), x.68, z.43)
+        skTe  = skTe.38
+        z     = z.43
+        z.1   = x.65^x.66
+        z.2   = 'g'^skTe.38
+        z.3   = x.65^(x.66*inv(skTe.38))
+    
+    50. certC = cert(x.66^(x.67*inv((skTe.39*x.68))), x.70, z.44)
+        skTe  = skTe.39
+        z     = z.44
+        z.1   = x.66^(x.67*inv(x.68))
+        z.2   = 'g'^skTe.39
+        z.3   = x.66^(x.67*inv((skTe.39*x.68)))
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, pkTe, IDc, r1, s1, certC, pkTe2, r2, tag> ),
+   !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(certC) ), Eq( tag, mac(pkTe, kdf_mac(pkTe^skC, r2)) ),
+  Eq( pkTe, pkTe2 ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(s1, <IDc, r1, pkTe>, cert_pk(certT)), true ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, pkTe, IDc, r1, s1, certC, pkTe2, r2, tag> ),
+     !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( tag, mac(pkTe, kdf_mac(z.1, r2)) ), Eq( pkTe, pkTe2 ),
+    Eq( z.2, true ), Eq( z.3, true ), Eq( z.4, true ),
+    ValidTrans( C, 'chip', z.5 )
+    ]->
+     [ ]
+    variants (modulo AC)
+      1. IDc   = IDc.20
+         certC = certC.21
+         certT = certT.22
+         pkTe  = pkTe.23
+         r1    = r1.25
+         s1    = s1.27
+         skC   = skC.28
+         z     = cert_id(certC.21)
+         z.1   = pkTe.23^skC.28
+         z.2   = verify(cert_sig(certT.22),
+                        <cert_pk(certT.22), cert_id(certT.22), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.21),
+                        <cert_pk(certC.21), cert_id(certC.21), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.27, <IDc.20, r1.25, pkTe.23>, cert_pk(certT.22))
+         z.5   = cert_id(certT.22)
+    
+      2. IDc   = IDc.20
+         certC = certC.21
+         certT = certT.22
+         pkTe  = pkTe.23
+         r1    = r1.25
+         s1    = s1.27
+         skC   = one
+         z     = cert_id(certC.21)
+         z.1   = pkTe.23
+         z.2   = verify(cert_sig(certT.22),
+                        <cert_pk(certT.22), cert_id(certT.22), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.21),
+                        <cert_pk(certC.21), cert_id(certC.21), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.27, <IDc.20, r1.25, pkTe.23>, cert_pk(certT.22))
+         z.5   = cert_id(certT.22)
+    
+      3. IDc   = IDc.20
+         certC = certC.21
+         certT = certT.22
+         pkTe  = DH_neutral
+         r1    = r1.25
+         s1    = s1.27
+         z     = cert_id(certC.21)
+         z.1   = DH_neutral
+         z.2   = verify(cert_sig(certT.22),
+                        <cert_pk(certT.22), cert_id(certT.22), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.21),
+                        <cert_pk(certC.21), cert_id(certC.21), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.27, <IDc.20, r1.25, DH_neutral>, cert_pk(certT.22))
+         z.5   = cert_id(certT.22)
+    
+      4. IDc   = IDc.22
+         certC = certC.23
+         certT = certT.24
+         pkTe  = z.34^x.40
+         r1    = r1.27
+         s1    = s1.29
+         skC   = inv(x.40)
+         z     = cert_id(certC.23)
+         z.1   = z.34
+         z.2   = verify(cert_sig(certT.24),
+                        <cert_pk(certT.24), cert_id(certT.24), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.23),
+                        <cert_pk(certC.23), cert_id(certC.23), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.29, <IDc.22, r1.27, z.34^x.40>, cert_pk(certT.24))
+         z.5   = cert_id(certT.24)
+    
+      5. IDc   = IDc.22
+         certC = certC.23
+         certT = certT.24
+         pkTe  = z.34^inv(skC.30)
+         r1    = r1.27
+         s1    = s1.29
+         skC   = skC.30
+         z     = cert_id(certC.23)
+         z.1   = z.34
+         z.2   = verify(cert_sig(certT.24),
+                        <cert_pk(certT.24), cert_id(certT.24), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.23),
+                        <cert_pk(certC.23), cert_id(certC.23), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.29, <IDc.22, r1.27, z.34^inv(skC.30)>,
+                        cert_pk(certT.24))
+         z.5   = cert_id(certT.24)
+    
+      6. IDc   = IDc.22
+         certC = certC.23
+         certT = certT.24
+         pkTe  = x.39^x.40
+         r1    = r1.27
+         s1    = s1.29
+         skC   = skC.30
+         z     = cert_id(certC.23)
+         z.1   = x.39^(skC.30*x.40)
+         z.2   = verify(cert_sig(certT.24),
+                        <cert_pk(certT.24), cert_id(certT.24), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.23),
+                        <cert_pk(certC.23), cert_id(certC.23), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.29, <IDc.22, r1.27, x.39^x.40>, cert_pk(certT.24))
+         z.5   = cert_id(certT.24)
+    
+      7. IDc   = IDc.22
+         certC = certC.23
+         certT = cert(x.39, sign(<x.39, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.25
+         r1    = r1.27
+         s1    = s1.29
+         skC   = skC.30
+         z     = cert_id(certC.23)
+         z.1   = pkTe.25^skC.30
+         z.2   = true
+         z.3   = verify(cert_sig(certC.23),
+                        <cert_pk(certC.23), cert_id(certC.23), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.29, <IDc.22, r1.27, pkTe.25>, x.39)
+         z.5   = z.38
+    
+      8. IDc   = IDc.22
+         certC = certC.23
+         certT = cert(x.39, sign(<x.39, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.25
+         r1    = r1.27
+         s1    = s1.29
+         skC   = one
+         z     = cert_id(certC.23)
+         z.1   = pkTe.25
+         z.2   = true
+         z.3   = verify(cert_sig(certC.23),
+                        <cert_pk(certC.23), cert_id(certC.23), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.29, <IDc.22, r1.27, pkTe.25>, x.39)
+         z.5   = z.38
+    
+      9. IDc   = IDc.22
+         certC = certC.23
+         certT = cert(x.39, sign(<x.39, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = DH_neutral
+         r1    = r1.27
+         s1    = s1.29
+         z     = cert_id(certC.23)
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = verify(cert_sig(certC.23),
+                        <cert_pk(certC.23), cert_id(certC.23), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.29, <IDc.22, r1.27, DH_neutral>, x.39)
+         z.5   = z.38
+    
+     10. IDc   = IDc.22
+         certC = cert(x.39, sign(<x.39, z.33, 'chip'>, ca_sk), z.33)
+         certT = certT.24
+         pkTe  = pkTe.25
+         r1    = r1.27
+         s1    = s1.29
+         skC   = skC.30
+         z     = z.33
+         z.1   = pkTe.25^skC.30
+         z.2   = verify(cert_sig(certT.24),
+                        <cert_pk(certT.24), cert_id(certT.24), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.29, <IDc.22, r1.27, pkTe.25>, cert_pk(certT.24))
+         z.5   = cert_id(certT.24)
+    
+     11. IDc   = IDc.22
+         certC = cert(x.39, sign(<x.39, z.33, 'chip'>, ca_sk), z.33)
+         certT = certT.24
+         pkTe  = pkTe.25
+         r1    = r1.27
+         s1    = s1.29
+         skC   = one
+         z     = z.33
+         z.1   = pkTe.25
+         z.2   = verify(cert_sig(certT.24),
+                        <cert_pk(certT.24), cert_id(certT.24), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.29, <IDc.22, r1.27, pkTe.25>, cert_pk(certT.24))
+         z.5   = cert_id(certT.24)
+    
+     12. IDc   = IDc.22
+         certC = cert(x.39, sign(<x.39, z.33, 'chip'>, ca_sk), z.33)
+         certT = certT.24
+         pkTe  = DH_neutral
+         r1    = r1.27
+         s1    = s1.29
+         z     = z.33
+         z.1   = DH_neutral
+         z.2   = verify(cert_sig(certT.24),
+                        <cert_pk(certT.24), cert_id(certT.24), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.29, <IDc.22, r1.27, DH_neutral>, cert_pk(certT.24))
+         z.5   = cert_id(certT.24)
+    
+     13. IDc   = IDc.23
+         certC = certC.24
+         certT = certT.25
+         pkTe  = z.35^(x.41*inv(x.42))
+         r1    = r1.28
+         s1    = s1.30
+         skC   = (x.42*inv(x.41))
+         z     = cert_id(certC.24)
+         z.1   = z.35
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, z.35^(x.41*inv(x.42))>,
+                        cert_pk(certT.25))
+         z.5   = cert_id(certT.25)
+    
+     14. IDc   = IDc.23
+         certC = certC.24
+         certT = certT.25
+         pkTe  = x.40^inv((skC.31*x.41))
+         r1    = r1.28
+         s1    = s1.30
+         skC   = skC.31
+         z     = cert_id(certC.24)
+         z.1   = x.40^inv(x.41)
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, x.40^inv((skC.31*x.41))>,
+                        cert_pk(certT.25))
+         z.5   = cert_id(certT.25)
+    
+     15. IDc   = IDc.23
+         certC = certC.24
+         certT = certT.25
+         pkTe  = x.40^(x.41*x.42)
+         r1    = r1.28
+         s1    = s1.30
+         skC   = inv(x.41)
+         z     = cert_id(certC.24)
+         z.1   = x.40^x.42
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, x.40^(x.41*x.42)>,
+                        cert_pk(certT.25))
+         z.5   = cert_id(certT.25)
+    
+     16. IDc   = IDc.23
+         certC = certC.24
+         certT = certT.25
+         pkTe  = x.40^(x.41*inv(skC.31))
+         r1    = r1.28
+         s1    = s1.30
+         skC   = skC.31
+         z     = cert_id(certC.24)
+         z.1   = x.40^x.41
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, x.40^(x.41*inv(skC.31))>,
+                        cert_pk(certT.25))
+         z.5   = cert_id(certT.25)
+    
+     17. IDc   = IDc.23
+         certC = certC.24
+         certT = cert(x.40, x.41, z.39)
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         skC   = skC.31
+         z     = cert_id(certC.24)
+         z.1   = pkTe.26^skC.31
+         z.2   = verify(x.41, <x.40, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, pkTe.26>, x.40)
+         z.5   = z.39
+    
+     18. IDc   = IDc.23
+         certC = certC.24
+         certT = cert(x.40, x.41, z.39)
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         skC   = one
+         z     = cert_id(certC.24)
+         z.1   = pkTe.26
+         z.2   = verify(x.41, <x.40, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, pkTe.26>, x.40)
+         z.5   = z.39
+    
+     19. IDc   = IDc.23
+         certC = certC.24
+         certT = cert(x.40, x.41, z.39)
+         pkTe  = DH_neutral
+         r1    = r1.28
+         s1    = s1.30
+         z     = cert_id(certC.24)
+         z.1   = DH_neutral
+         z.2   = verify(x.41, <x.40, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, DH_neutral>, x.40)
+         z.5   = z.39
+    
+     20. IDc   = IDc.23
+         certC = cert(x.40, x.41, z.34)
+         certT = certT.25
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         skC   = skC.31
+         z     = z.34
+         z.1   = pkTe.26^skC.31
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.41, <x.40, z.34, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, pkTe.26>, cert_pk(certT.25))
+         z.5   = cert_id(certT.25)
+    
+     21. IDc   = IDc.23
+         certC = cert(x.40, x.41, z.34)
+         certT = certT.25
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         skC   = one
+         z     = z.34
+         z.1   = pkTe.26
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.41, <x.40, z.34, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, pkTe.26>, cert_pk(certT.25))
+         z.5   = cert_id(certT.25)
+    
+     22. IDc   = IDc.23
+         certC = cert(x.40, x.41, z.34)
+         certT = certT.25
+         pkTe  = DH_neutral
+         r1    = r1.28
+         s1    = s1.30
+         z     = z.34
+         z.1   = DH_neutral
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.41, <x.40, z.34, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.23, r1.28, DH_neutral>, cert_pk(certT.25))
+         z.5   = cert_id(certT.25)
+    
+     23. IDc   = IDc.24
+         certC = certC.25
+         certT = certT.26
+         pkTe  = x.41^(x.42*x.43*inv(x.44))
+         r1    = r1.29
+         s1    = s1.31
+         skC   = (x.44*inv(x.43))
+         z     = cert_id(certC.25)
+         z.1   = x.41^x.42
+         z.2   = verify(cert_sig(certT.26),
+                        <cert_pk(certT.26), cert_id(certT.26), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.25),
+                        <cert_pk(certC.25), cert_id(certC.25), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.24, r1.29, x.41^(x.42*x.43*inv(x.44))>,
+                        cert_pk(certT.26))
+         z.5   = cert_id(certT.26)
+    
+     24. IDc   = IDc.24
+         certC = certC.25
+         certT = certT.26
+         pkTe  = x.41^(x.42*inv((skC.32*x.43)))
+         r1    = r1.29
+         s1    = s1.31
+         skC   = skC.32
+         z     = cert_id(certC.25)
+         z.1   = x.41^(x.42*inv(x.43))
+         z.2   = verify(cert_sig(certT.26),
+                        <cert_pk(certT.26), cert_id(certT.26), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.25),
+                        <cert_pk(certC.25), cert_id(certC.25), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.24, r1.29, x.41^(x.42*inv((skC.32*x.43)))>,
+                        cert_pk(certT.26))
+         z.5   = cert_id(certT.26)
+    
+     25. IDc   = IDc.24
+         certC = certC.25
+         certT = certT.26
+         pkTe  = x.41^(x.42*inv((x.43*x.44)))
+         r1    = r1.29
+         s1    = s1.31
+         skC   = (x.44*inv(x.42))
+         z     = cert_id(certC.25)
+         z.1   = x.41^inv(x.43)
+         z.2   = verify(cert_sig(certT.26),
+                        <cert_pk(certT.26), cert_id(certT.26), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.25),
+                        <cert_pk(certC.25), cert_id(certC.25), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.24, r1.29, x.41^(x.42*inv((x.43*x.44)))>,
+                        cert_pk(certT.26))
+         z.5   = cert_id(certT.26)
+    
+     26. IDc   = IDc.24
+         certC = certC.25
+         certT = cert(x.41, sign(<x.41, z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = z.36^x.44
+         r1    = r1.29
+         s1    = s1.31
+         skC   = inv(x.44)
+         z     = cert_id(certC.25)
+         z.1   = z.36
+         z.2   = true
+         z.3   = verify(cert_sig(certC.25),
+                        <cert_pk(certC.25), cert_id(certC.25), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.24, r1.29, z.36^x.44>, x.41)
+         z.5   = z.40
+    
+     27. IDc   = IDc.24
+         certC = certC.25
+         certT = cert(x.41, sign(<x.41, z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = z.36^inv(skC.32)
+         r1    = r1.29
+         s1    = s1.31
+         skC   = skC.32
+         z     = cert_id(certC.25)
+         z.1   = z.36
+         z.2   = true
+         z.3   = verify(cert_sig(certC.25),
+                        <cert_pk(certC.25), cert_id(certC.25), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.24, r1.29, z.36^inv(skC.32)>, x.41)
+         z.5   = z.40
+    
+     28. IDc   = IDc.24
+         certC = certC.25
+         certT = cert(x.41, sign(<x.41, z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = x.43^x.44
+         r1    = r1.29
+         s1    = s1.31
+         skC   = skC.32
+         z     = cert_id(certC.25)
+         z.1   = x.43^(skC.32*x.44)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.25),
+                        <cert_pk(certC.25), cert_id(certC.25), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.24, r1.29, x.43^x.44>, x.41)
+         z.5   = z.40
+    
+     29. IDc   = IDc.24
+         certC = cert(x.41, sign(<x.41, z.35, 'chip'>, ca_sk), z.35)
+         certT = cert(x.43, sign(<x.43, z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skC   = skC.32
+         z     = z.35
+         z.1   = pkTe.27^skC.32
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.31, <IDc.24, r1.29, pkTe.27>, x.43)
+         z.5   = z.40
+    
+     30. IDc   = IDc.24
+         certC = cert(x.41, sign(<x.41, z.35, 'chip'>, ca_sk), z.35)
+         certT = cert(x.43, sign(<x.43, z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skC   = one
+         z     = z.35
+         z.1   = pkTe.27
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.31, <IDc.24, r1.29, pkTe.27>, x.43)
+         z.5   = z.40
+    
+     31. IDc   = IDc.24
+         certC = cert(x.41, sign(<x.41, z.35, 'chip'>, ca_sk), z.35)
+         certT = cert(x.43, sign(<x.43, z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = DH_neutral
+         r1    = r1.29
+         s1    = s1.31
+         z     = z.35
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.31, <IDc.24, r1.29, DH_neutral>, x.43)
+         z.5   = z.40
+    
+     32. IDc   = IDc.25
+         certC = certC.26
+         certT = certT.27
+         pkTe  = x.42^(x.43*x.44*inv((x.45*x.46)))
+         r1    = r1.30
+         s1    = s1.32
+         skC   = (x.46*inv(x.44))
+         z     = cert_id(certC.26)
+         z.1   = x.42^(x.43*inv(x.45))
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.26),
+                        <cert_pk(certC.26), cert_id(certC.26), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, x.42^(x.43*x.44*inv((x.45*x.46)))>,
+                        cert_pk(certT.27))
+         z.5   = cert_id(certT.27)
+    
+     33. IDc   = IDc.25
+         certC = certC.26
+         certT = cert(x.42, x.43, z.41)
+         pkTe  = z.37^x.46
+         r1    = r1.30
+         s1    = s1.32
+         skC   = inv(x.46)
+         z     = cert_id(certC.26)
+         z.1   = z.37
+         z.2   = verify(x.43, <x.42, z.41, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.26),
+                        <cert_pk(certC.26), cert_id(certC.26), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, z.37^x.46>, x.42)
+         z.5   = z.41
+    
+     34. IDc   = IDc.25
+         certC = certC.26
+         certT = cert(x.42, x.43, z.41)
+         pkTe  = z.37^inv(skC.33)
+         r1    = r1.30
+         s1    = s1.32
+         skC   = skC.33
+         z     = cert_id(certC.26)
+         z.1   = z.37
+         z.2   = verify(x.43, <x.42, z.41, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.26),
+                        <cert_pk(certC.26), cert_id(certC.26), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, z.37^inv(skC.33)>, x.42)
+         z.5   = z.41
+    
+     35. IDc   = IDc.25
+         certC = certC.26
+         certT = cert(x.42, x.43, z.41)
+         pkTe  = x.45^x.46
+         r1    = r1.30
+         s1    = s1.32
+         skC   = skC.33
+         z     = cert_id(certC.26)
+         z.1   = x.45^(skC.33*x.46)
+         z.2   = verify(x.43, <x.42, z.41, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.26),
+                        <cert_pk(certC.26), cert_id(certC.26), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, x.45^x.46>, x.42)
+         z.5   = z.41
+    
+     36. IDc   = IDc.25
+         certC = certC.26
+         certT = cert(x.42, sign(<x.42, z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = z.37^(x.45*inv(x.46))
+         r1    = r1.30
+         s1    = s1.32
+         skC   = (x.46*inv(x.45))
+         z     = cert_id(certC.26)
+         z.1   = z.37
+         z.2   = true
+         z.3   = verify(cert_sig(certC.26),
+                        <cert_pk(certC.26), cert_id(certC.26), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, z.37^(x.45*inv(x.46))>, x.42)
+         z.5   = z.41
+    
+     37. IDc   = IDc.25
+         certC = certC.26
+         certT = cert(x.42, sign(<x.42, z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = x.44^inv((skC.33*x.45))
+         r1    = r1.30
+         s1    = s1.32
+         skC   = skC.33
+         z     = cert_id(certC.26)
+         z.1   = x.44^inv(x.45)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.26),
+                        <cert_pk(certC.26), cert_id(certC.26), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, x.44^inv((skC.33*x.45))>, x.42)
+         z.5   = z.41
+    
+     38. IDc   = IDc.25
+         certC = certC.26
+         certT = cert(x.42, sign(<x.42, z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = x.44^(x.45*x.46)
+         r1    = r1.30
+         s1    = s1.32
+         skC   = inv(x.45)
+         z     = cert_id(certC.26)
+         z.1   = x.44^x.46
+         z.2   = true
+         z.3   = verify(cert_sig(certC.26),
+                        <cert_pk(certC.26), cert_id(certC.26), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, x.44^(x.45*x.46)>, x.42)
+         z.5   = z.41
+    
+     39. IDc   = IDc.25
+         certC = certC.26
+         certT = cert(x.42, sign(<x.42, z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = x.44^(x.45*inv(skC.33))
+         r1    = r1.30
+         s1    = s1.32
+         skC   = skC.33
+         z     = cert_id(certC.26)
+         z.1   = x.44^x.45
+         z.2   = true
+         z.3   = verify(cert_sig(certC.26),
+                        <cert_pk(certC.26), cert_id(certC.26), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, x.44^(x.45*inv(skC.33))>, x.42)
+         z.5   = z.41
+    
+     40. IDc   = IDc.25
+         certC = cert(x.42, x.43, z.36)
+         certT = cert(x.45, sign(<x.45, z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skC   = skC.33
+         z     = z.36
+         z.1   = pkTe.28^skC.33
+         z.2   = true
+         z.3   = verify(x.43, <x.42, z.36, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, pkTe.28>, x.45)
+         z.5   = z.41
+    
+     41. IDc   = IDc.25
+         certC = cert(x.42, x.43, z.36)
+         certT = cert(x.45, sign(<x.45, z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skC   = one
+         z     = z.36
+         z.1   = pkTe.28
+         z.2   = true
+         z.3   = verify(x.43, <x.42, z.36, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, pkTe.28>, x.45)
+         z.5   = z.41
+    
+     42. IDc   = IDc.25
+         certC = cert(x.42, x.43, z.36)
+         certT = cert(x.45, sign(<x.45, z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = DH_neutral
+         r1    = r1.30
+         s1    = s1.32
+         z     = z.36
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = verify(x.43, <x.42, z.36, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.25, r1.30, DH_neutral>, x.45)
+         z.5   = z.41
+    
+     43. IDc   = IDc.25
+         certC = cert(x.42, sign(<x.42, z.36, 'chip'>, ca_sk), z.36)
+         certT = certT.27
+         pkTe  = z.37^x.46
+         r1    = r1.30
+         s1    = s1.32
+         skC   = inv(x.46)
+         z     = z.36
+         z.1   = z.37
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.25, r1.30, z.37^x.46>, cert_pk(certT.27))
+         z.5   = cert_id(certT.27)
+    
+     44. IDc   = IDc.25
+         certC = cert(x.42, sign(<x.42, z.36, 'chip'>, ca_sk), z.36)
+         certT = certT.27
+         pkTe  = z.37^inv(skC.33)
+         r1    = r1.30
+         s1    = s1.32
+         skC   = skC.33
+         z     = z.36
+         z.1   = z.37
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.25, r1.30, z.37^inv(skC.33)>,
+                        cert_pk(certT.27))
+         z.5   = cert_id(certT.27)
+    
+     45. IDc   = IDc.25
+         certC = cert(x.42, sign(<x.42, z.36, 'chip'>, ca_sk), z.36)
+         certT = certT.27
+         pkTe  = x.45^x.46
+         r1    = r1.30
+         s1    = s1.32
+         skC   = skC.33
+         z     = z.36
+         z.1   = x.45^(skC.33*x.46)
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.25, r1.30, x.45^x.46>, cert_pk(certT.27))
+         z.5   = cert_id(certT.27)
+    
+     46. IDc   = IDc.25
+         certC = cert(x.42, sign(<x.42, z.36, 'chip'>, ca_sk), z.36)
+         certT = cert(x.44, x.45, z.41)
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skC   = skC.33
+         z     = z.36
+         z.1   = pkTe.28^skC.33
+         z.2   = verify(x.45, <x.44, z.41, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.25, r1.30, pkTe.28>, x.44)
+         z.5   = z.41
+    
+     47. IDc   = IDc.25
+         certC = cert(x.42, sign(<x.42, z.36, 'chip'>, ca_sk), z.36)
+         certT = cert(x.44, x.45, z.41)
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skC   = one
+         z     = z.36
+         z.1   = pkTe.28
+         z.2   = verify(x.45, <x.44, z.41, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.25, r1.30, pkTe.28>, x.44)
+         z.5   = z.41
+    
+     48. IDc   = IDc.25
+         certC = cert(x.42, sign(<x.42, z.36, 'chip'>, ca_sk), z.36)
+         certT = cert(x.44, x.45, z.41)
+         pkTe  = DH_neutral
+         r1    = r1.30
+         s1    = s1.32
+         z     = z.36
+         z.1   = DH_neutral
+         z.2   = verify(x.45, <x.44, z.41, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.25, r1.30, DH_neutral>, x.44)
+         z.5   = z.41
+    
+     49. IDc   = IDc.26
+         certC = certC.27
+         certT = cert(x.43, x.44, z.42)
+         pkTe  = z.38^(x.47*inv(x.48))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = (x.48*inv(x.47))
+         z     = cert_id(certC.27)
+         z.1   = z.38
+         z.2   = verify(x.44, <x.43, z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.27),
+                        <cert_pk(certC.27), cert_id(certC.27), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, z.38^(x.47*inv(x.48))>, x.43)
+         z.5   = z.42
+    
+     50. IDc   = IDc.26
+         certC = certC.27
+         certT = cert(x.43, x.44, z.42)
+         pkTe  = x.46^inv((skC.34*x.47))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = cert_id(certC.27)
+         z.1   = x.46^inv(x.47)
+         z.2   = verify(x.44, <x.43, z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.27),
+                        <cert_pk(certC.27), cert_id(certC.27), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.46^inv((skC.34*x.47))>, x.43)
+         z.5   = z.42
+    
+     51. IDc   = IDc.26
+         certC = certC.27
+         certT = cert(x.43, x.44, z.42)
+         pkTe  = x.46^(x.47*x.48)
+         r1    = r1.31
+         s1    = s1.33
+         skC   = inv(x.47)
+         z     = cert_id(certC.27)
+         z.1   = x.46^x.48
+         z.2   = verify(x.44, <x.43, z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.27),
+                        <cert_pk(certC.27), cert_id(certC.27), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.46^(x.47*x.48)>, x.43)
+         z.5   = z.42
+    
+     52. IDc   = IDc.26
+         certC = certC.27
+         certT = cert(x.43, x.44, z.42)
+         pkTe  = x.46^(x.47*inv(skC.34))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = cert_id(certC.27)
+         z.1   = x.46^x.47
+         z.2   = verify(x.44, <x.43, z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.27),
+                        <cert_pk(certC.27), cert_id(certC.27), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.46^(x.47*inv(skC.34))>, x.43)
+         z.5   = z.42
+    
+     53. IDc   = IDc.26
+         certC = certC.27
+         certT = cert(x.43, sign(<x.43, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = x.45^(x.46*x.47*inv(x.48))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = (x.48*inv(x.47))
+         z     = cert_id(certC.27)
+         z.1   = x.45^x.46
+         z.2   = true
+         z.3   = verify(cert_sig(certC.27),
+                        <cert_pk(certC.27), cert_id(certC.27), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.45^(x.46*x.47*inv(x.48))>, x.43)
+         z.5   = z.42
+    
+     54. IDc   = IDc.26
+         certC = certC.27
+         certT = cert(x.43, sign(<x.43, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = x.45^(x.46*inv((skC.34*x.47)))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = cert_id(certC.27)
+         z.1   = x.45^(x.46*inv(x.47))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.27),
+                        <cert_pk(certC.27), cert_id(certC.27), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.45^(x.46*inv((skC.34*x.47)))>,
+                        x.43)
+         z.5   = z.42
+    
+     55. IDc   = IDc.26
+         certC = certC.27
+         certT = cert(x.43, sign(<x.43, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = x.45^(x.46*inv((x.47*x.48)))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = (x.48*inv(x.46))
+         z     = cert_id(certC.27)
+         z.1   = x.45^inv(x.47)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.27),
+                        <cert_pk(certC.27), cert_id(certC.27), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.45^(x.46*inv((x.47*x.48)))>,
+                        x.43)
+         z.5   = z.42
+    
+     56. IDc   = IDc.26
+         certC = certC.27
+         certT = cert(pk(x.45), sign(<pk(x.45), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = DH_neutral
+         r1    = r1.31
+         s1    = sign(<IDc.26, r1.31, DH_neutral>, x.45)
+         z     = cert_id(certC.27)
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = verify(cert_sig(certC.27),
+                        <cert_pk(certC.27), cert_id(certC.27), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.42
+    
+     57. IDc   = IDc.26
+         certC = cert(x.43, x.44, z.37)
+         certT = certT.28
+         pkTe  = z.38^x.48
+         r1    = r1.31
+         s1    = s1.33
+         skC   = inv(x.48)
+         z     = z.37
+         z.1   = z.38
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <x.43, z.37, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, z.38^x.48>, cert_pk(certT.28))
+         z.5   = cert_id(certT.28)
+    
+     58. IDc   = IDc.26
+         certC = cert(x.43, x.44, z.37)
+         certT = certT.28
+         pkTe  = z.38^inv(skC.34)
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = z.37
+         z.1   = z.38
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <x.43, z.37, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, z.38^inv(skC.34)>,
+                        cert_pk(certT.28))
+         z.5   = cert_id(certT.28)
+    
+     59. IDc   = IDc.26
+         certC = cert(x.43, x.44, z.37)
+         certT = certT.28
+         pkTe  = x.47^x.48
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = z.37
+         z.1   = x.47^(skC.34*x.48)
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <x.43, z.37, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.47^x.48>, cert_pk(certT.28))
+         z.5   = cert_id(certT.28)
+    
+     60. IDc   = IDc.26
+         certC = cert(x.43, x.44, z.37)
+         certT = cert(x.46, x.47, z.42)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = z.37
+         z.1   = pkTe.29^skC.34
+         z.2   = verify(x.47, <x.46, z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <x.43, z.37, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, pkTe.29>, x.46)
+         z.5   = z.42
+    
+     61. IDc   = IDc.26
+         certC = cert(x.43, x.44, z.37)
+         certT = cert(x.46, x.47, z.42)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skC   = one
+         z     = z.37
+         z.1   = pkTe.29
+         z.2   = verify(x.47, <x.46, z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <x.43, z.37, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, pkTe.29>, x.46)
+         z.5   = z.42
+    
+     62. IDc   = IDc.26
+         certC = cert(x.43, x.44, z.37)
+         certT = cert(x.46, x.47, z.42)
+         pkTe  = DH_neutral
+         r1    = r1.31
+         s1    = s1.33
+         z     = z.37
+         z.1   = DH_neutral
+         z.2   = verify(x.47, <x.46, z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <x.43, z.37, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.26, r1.31, DH_neutral>, x.46)
+         z.5   = z.42
+    
+     63. IDc   = IDc.26
+         certC = cert(x.43, sign(<x.43, z.37, 'chip'>, ca_sk), z.37)
+         certT = certT.28
+         pkTe  = z.38^(x.47*inv(x.48))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = (x.48*inv(x.47))
+         z     = z.37
+         z.1   = z.38
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.26, r1.31, z.38^(x.47*inv(x.48))>,
+                        cert_pk(certT.28))
+         z.5   = cert_id(certT.28)
+    
+     64. IDc   = IDc.26
+         certC = cert(x.43, sign(<x.43, z.37, 'chip'>, ca_sk), z.37)
+         certT = certT.28
+         pkTe  = x.46^inv((skC.34*x.47))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = z.37
+         z.1   = x.46^inv(x.47)
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.46^inv((skC.34*x.47))>,
+                        cert_pk(certT.28))
+         z.5   = cert_id(certT.28)
+    
+     65. IDc   = IDc.26
+         certC = cert(x.43, sign(<x.43, z.37, 'chip'>, ca_sk), z.37)
+         certT = certT.28
+         pkTe  = x.46^(x.47*x.48)
+         r1    = r1.31
+         s1    = s1.33
+         skC   = inv(x.47)
+         z     = z.37
+         z.1   = x.46^x.48
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.46^(x.47*x.48)>,
+                        cert_pk(certT.28))
+         z.5   = cert_id(certT.28)
+    
+     66. IDc   = IDc.26
+         certC = cert(x.43, sign(<x.43, z.37, 'chip'>, ca_sk), z.37)
+         certT = certT.28
+         pkTe  = x.46^(x.47*inv(skC.34))
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = z.37
+         z.1   = x.46^x.47
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.46^(x.47*inv(skC.34))>,
+                        cert_pk(certT.28))
+         z.5   = cert_id(certT.28)
+    
+     67. IDc   = IDc.26
+         certC = cert(x.43, sign(<x.43, z.37, 'chip'>, ca_sk), z.37)
+         certT = cert(x.45, sign(<x.45, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = z.38^x.48
+         r1    = r1.31
+         s1    = s1.33
+         skC   = inv(x.48)
+         z     = z.37
+         z.1   = z.38
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.26, r1.31, z.38^x.48>, x.45)
+         z.5   = z.42
+    
+     68. IDc   = IDc.26
+         certC = cert(x.43, sign(<x.43, z.37, 'chip'>, ca_sk), z.37)
+         certT = cert(x.45, sign(<x.45, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = z.38^inv(skC.34)
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = z.37
+         z.1   = z.38
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.26, r1.31, z.38^inv(skC.34)>, x.45)
+         z.5   = z.42
+    
+     69. IDc   = IDc.26
+         certC = cert(x.43, sign(<x.43, z.37, 'chip'>, ca_sk), z.37)
+         certT = cert(x.45, sign(<x.45, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = x.47^x.48
+         r1    = r1.31
+         s1    = s1.33
+         skC   = skC.34
+         z     = z.37
+         z.1   = x.47^(skC.34*x.48)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.26, r1.31, x.47^x.48>, x.45)
+         z.5   = z.42
+    
+     70. IDc   = IDc.26
+         certC = cert(x.44, sign(<x.44, z.37, 'chip'>, ca_sk), z.37)
+         certT = cert(pk(x.46), sign(<pk(x.46), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = DH_neutral
+         r1    = r1.31
+         s1    = sign(<IDc.26, r1.31, DH_neutral>, x.46)
+         z     = z.37
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.42
+    
+     71. IDc   = IDc.27
+         certC = certC.28
+         certT = certT.29
+         pkTe  = x.44^x.45
+         r1    = r1.32
+         s1    = s1.34
+         skC   = inv((x.45*x.50))
+         z     = cert_id(certC.28)
+         z.1   = x.44^inv(x.50)
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.44^x.45>, cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     72. IDc   = IDc.27
+         certC = certC.28
+         certT = certT.29
+         pkTe  = x.44^x.45
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.50*inv(x.45))
+         z     = cert_id(certC.28)
+         z.1   = x.44^x.50
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.44^x.45>, cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     73. IDc   = IDc.27
+         certC = certC.28
+         certT = certT.29
+         pkTe  = x.44^inv(x.45)
+         r1    = r1.32
+         s1    = s1.34
+         skC   = inv(x.50)
+         z     = cert_id(certC.28)
+         z.1   = x.44^inv((x.45*x.50))
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.44^inv(x.45)>, cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     74. IDc   = IDc.27
+         certC = certC.28
+         certT = certT.29
+         pkTe  = x.44^inv(x.45)
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.45*x.50)
+         z     = cert_id(certC.28)
+         z.1   = x.44^x.50
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.44^inv(x.45)>, cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     75. IDc   = IDc.27
+         certC = certC.28
+         certT = cert(x.44, x.45, z.43)
+         pkTe  = x.47^(x.48*x.49*inv(x.50))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.50*inv(x.49))
+         z     = cert_id(certC.28)
+         z.1   = x.47^x.48
+         z.2   = verify(x.45, <x.44, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.47^(x.48*x.49*inv(x.50))>, x.44)
+         z.5   = z.43
+    
+     76. IDc   = IDc.27
+         certC = certC.28
+         certT = cert(x.44, x.45, z.43)
+         pkTe  = x.47^(x.48*inv((skC.35*x.49)))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = cert_id(certC.28)
+         z.1   = x.47^(x.48*inv(x.49))
+         z.2   = verify(x.45, <x.44, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.47^(x.48*inv((skC.35*x.49)))>,
+                        x.44)
+         z.5   = z.43
+    
+     77. IDc   = IDc.27
+         certC = certC.28
+         certT = cert(x.44, x.45, z.43)
+         pkTe  = x.47^(x.48*inv((x.49*x.50)))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.50*inv(x.48))
+         z     = cert_id(certC.28)
+         z.1   = x.47^inv(x.49)
+         z.2   = verify(x.45, <x.44, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.47^(x.48*inv((x.49*x.50)))>,
+                        x.44)
+         z.5   = z.43
+    
+     78. IDc   = IDc.27
+         certC = certC.28
+         certT = cert(x.44, sign(<x.44, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = x.46^(x.47*x.48*inv((x.49*x.50)))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.50*inv(x.48))
+         z     = cert_id(certC.28)
+         z.1   = x.46^(x.47*inv(x.49))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.46^(x.47*x.48*inv((x.49*x.50)))>,
+                        x.44)
+         z.5   = z.43
+    
+     79. IDc   = IDc.27
+         certC = certC.28
+         certT = cert(pk(x.46), x.47, z.43)
+         pkTe  = DH_neutral
+         r1    = r1.32
+         s1    = sign(<IDc.27, r1.32, DH_neutral>, x.46)
+         z     = cert_id(certC.28)
+         z.1   = DH_neutral
+         z.2   = verify(x.47, <pk(x.46), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.43
+    
+     80. IDc   = IDc.27
+         certC = certC.28
+         certT = cert(pk(x.46), sign(<pk(x.46), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = sign(<IDc.27, r1.32, pkTe.30>, x.46)
+         skC   = skC.35
+         z     = cert_id(certC.28)
+         z.1   = pkTe.30^skC.35
+         z.2   = true
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.43
+    
+     81. IDc   = IDc.27
+         certC = certC.28
+         certT = cert(pk(x.46), sign(<pk(x.46), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = sign(<IDc.27, r1.32, pkTe.30>, x.46)
+         skC   = one
+         z     = cert_id(certC.28)
+         z.1   = pkTe.30
+         z.2   = true
+         z.3   = verify(cert_sig(certC.28),
+                        <cert_pk(certC.28), cert_id(certC.28), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.43
+    
+     82. IDc   = IDc.27
+         certC = cert(x.44, x.45, z.38)
+         certT = certT.29
+         pkTe  = z.39^(x.49*inv(x.50))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.50*inv(x.49))
+         z     = z.38
+         z.1   = z.39
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.45, <x.44, z.38, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, z.39^(x.49*inv(x.50))>,
+                        cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     83. IDc   = IDc.27
+         certC = cert(x.44, x.45, z.38)
+         certT = certT.29
+         pkTe  = x.48^inv((skC.35*x.49))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = x.48^inv(x.49)
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.45, <x.44, z.38, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.48^inv((skC.35*x.49))>,
+                        cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     84. IDc   = IDc.27
+         certC = cert(x.44, x.45, z.38)
+         certT = certT.29
+         pkTe  = x.48^(x.49*x.50)
+         r1    = r1.32
+         s1    = s1.34
+         skC   = inv(x.49)
+         z     = z.38
+         z.1   = x.48^x.50
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.45, <x.44, z.38, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.48^(x.49*x.50)>,
+                        cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     85. IDc   = IDc.27
+         certC = cert(x.44, x.45, z.38)
+         certT = certT.29
+         pkTe  = x.48^(x.49*inv(skC.35))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = x.48^x.49
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.45, <x.44, z.38, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.48^(x.49*inv(skC.35))>,
+                        cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     86. IDc   = IDc.27
+         certC = cert(x.44, x.45, z.38)
+         certT = cert(x.47, sign(<x.47, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = z.39^x.50
+         r1    = r1.32
+         s1    = s1.34
+         skC   = inv(x.50)
+         z     = z.38
+         z.1   = z.39
+         z.2   = true
+         z.3   = verify(x.45, <x.44, z.38, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, z.39^x.50>, x.47)
+         z.5   = z.43
+    
+     87. IDc   = IDc.27
+         certC = cert(x.44, x.45, z.38)
+         certT = cert(x.47, sign(<x.47, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = z.39^inv(skC.35)
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = z.39
+         z.2   = true
+         z.3   = verify(x.45, <x.44, z.38, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, z.39^inv(skC.35)>, x.47)
+         z.5   = z.43
+    
+     88. IDc   = IDc.27
+         certC = cert(x.44, x.45, z.38)
+         certT = cert(x.47, sign(<x.47, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = x.49^x.50
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = x.49^(skC.35*x.50)
+         z.2   = true
+         z.3   = verify(x.45, <x.44, z.38, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.49^x.50>, x.47)
+         z.5   = z.43
+    
+     89. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = certT.29
+         pkTe  = x.47^(x.48*x.49*inv(x.50))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.50*inv(x.49))
+         z     = z.38
+         z.1   = x.47^x.48
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.47^(x.48*x.49*inv(x.50))>,
+                        cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     90. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = certT.29
+         pkTe  = x.47^(x.48*inv((skC.35*x.49)))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = x.47^(x.48*inv(x.49))
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.47^(x.48*inv((skC.35*x.49)))>,
+                        cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     91. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = certT.29
+         pkTe  = x.47^(x.48*inv((x.49*x.50)))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.50*inv(x.48))
+         z     = z.38
+         z.1   = x.47^inv(x.49)
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.47^(x.48*inv((x.49*x.50)))>,
+                        cert_pk(certT.29))
+         z.5   = cert_id(certT.29)
+    
+     92. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(x.46, x.47, z.43)
+         pkTe  = z.39^x.50
+         r1    = r1.32
+         s1    = s1.34
+         skC   = inv(x.50)
+         z     = z.38
+         z.1   = z.39
+         z.2   = verify(x.47, <x.46, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, z.39^x.50>, x.46)
+         z.5   = z.43
+    
+     93. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(x.46, x.47, z.43)
+         pkTe  = z.39^inv(skC.35)
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = z.39
+         z.2   = verify(x.47, <x.46, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, z.39^inv(skC.35)>, x.46)
+         z.5   = z.43
+    
+     94. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(x.46, x.47, z.43)
+         pkTe  = x.49^x.50
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = x.49^(skC.35*x.50)
+         z.2   = verify(x.47, <x.46, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.49^x.50>, x.46)
+         z.5   = z.43
+    
+     95. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(x.46, sign(<x.46, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = z.39^(x.49*inv(x.50))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = (x.50*inv(x.49))
+         z     = z.38
+         z.1   = z.39
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, z.39^(x.49*inv(x.50))>, x.46)
+         z.5   = z.43
+    
+     96. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(x.46, sign(<x.46, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = x.48^inv((skC.35*x.49))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = x.48^inv(x.49)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.48^inv((skC.35*x.49))>, x.46)
+         z.5   = z.43
+    
+     97. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(x.46, sign(<x.46, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = x.48^(x.49*x.50)
+         r1    = r1.32
+         s1    = s1.34
+         skC   = inv(x.49)
+         z     = z.38
+         z.1   = x.48^x.50
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.48^(x.49*x.50)>, x.46)
+         z.5   = z.43
+    
+     98. IDc   = IDc.27
+         certC = cert(x.44, sign(<x.44, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(x.46, sign(<x.46, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = x.48^(x.49*inv(skC.35))
+         r1    = r1.32
+         s1    = s1.34
+         skC   = skC.35
+         z     = z.38
+         z.1   = x.48^x.49
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.27, r1.32, x.48^(x.49*inv(skC.35))>, x.46)
+         z.5   = z.43
+    
+     99. IDc   = IDc.27
+         certC = cert(x.45, x.46, z.38)
+         certT = cert(pk(x.48), sign(<pk(x.48), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = DH_neutral
+         r1    = r1.32
+         s1    = sign(<IDc.27, r1.32, DH_neutral>, x.48)
+         z     = z.38
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = verify(x.46, <x.45, z.38, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.43
+    
+    100. IDc   = IDc.27
+         certC = cert(x.45, sign(<x.45, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(pk(x.47), x.48, z.43)
+         pkTe  = DH_neutral
+         r1    = r1.32
+         s1    = sign(<IDc.27, r1.32, DH_neutral>, x.47)
+         z     = z.38
+         z.1   = DH_neutral
+         z.2   = verify(x.48, <pk(x.47), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.43
+    
+    101. IDc   = IDc.27
+         certC = cert(x.45, sign(<x.45, z.38, 'chip'>, ca_sk), z.38)
+         certT = cert(pk(x.47), sign(<pk(x.47), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = sign(<IDc.27, r1.32, pkTe.30>, x.47)
+         skC   = one
+         z     = z.38
+         z.1   = pkTe.30
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.43
+    
+    102. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^x.46
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.51*inv((x.46*x.52)))
+         z     = cert_id(certC.29)
+         z.1   = x.45^(x.51*inv(x.52))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^x.46>, cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    103. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^inv(x.46)
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.51*inv(x.52))
+         z     = cert_id(certC.29)
+         z.1   = x.45^(x.51*inv((x.46*x.52)))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^inv(x.46)>, cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    104. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^inv((x.46*x.47))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.46*x.52)
+         z     = cert_id(certC.29)
+         z.1   = x.45^(x.52*inv(x.47))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^inv((x.46*x.47))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    105. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^inv((x.46*x.47))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.46*inv(x.52))
+         z     = cert_id(certC.29)
+         z.1   = x.45^inv((x.47*x.52))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^inv((x.46*x.47))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    106. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^(x.46*x.47)
+         r1    = r1.33
+         s1    = s1.35
+         skC   = inv((x.46*x.52))
+         z     = cert_id(certC.29)
+         z.1   = x.45^(x.47*inv(x.52))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^(x.46*x.47)>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    107. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^(x.46*x.47)
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.46))
+         z     = cert_id(certC.29)
+         z.1   = x.45^(x.47*x.52)
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^(x.46*x.47)>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    108. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^(x.46*inv(x.47))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = inv(x.52)
+         z     = cert_id(certC.29)
+         z.1   = x.45^(x.46*inv((x.47*x.52)))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^(x.46*inv(x.47))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    109. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^(x.46*inv(x.47))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = inv((x.46*x.52))
+         z     = cert_id(certC.29)
+         z.1   = x.45^inv((x.47*x.52))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^(x.46*inv(x.47))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    110. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^(x.46*inv(x.47))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.47*x.52)
+         z     = cert_id(certC.29)
+         z.1   = x.45^(x.46*x.52)
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^(x.46*inv(x.47))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    111. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^(x.46*inv(x.47))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.47*x.52*inv(x.46))
+         z     = cert_id(certC.29)
+         z.1   = x.45^x.52
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^(x.46*inv(x.47))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    112. IDc   = IDc.28
+         certC = certC.29
+         certT = certT.30
+         pkTe  = x.45^(x.46*inv(x.47))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.47*inv((x.46*x.52)))
+         z     = cert_id(certC.29)
+         z.1   = x.45^inv(x.52)
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.45^(x.46*inv(x.47))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    113. IDc   = IDc.28
+         certC = certC.29
+         certT = cert(x.45, x.46, z.44)
+         pkTe  = x.48^(x.49*x.50*inv((x.51*x.52)))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.50))
+         z     = cert_id(certC.29)
+         z.1   = x.48^(x.49*inv(x.51))
+         z.2   = verify(x.46, <x.45, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.48^(x.49*x.50*inv((x.51*x.52)))>,
+                        x.45)
+         z.5   = z.44
+    
+    114. IDc   = IDc.28
+         certC = certC.29
+         certT = cert(pk(x.47), x.48, z.44)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, pkTe.31>, x.47)
+         skC   = skC.36
+         z     = cert_id(certC.29)
+         z.1   = pkTe.31^skC.36
+         z.2   = verify(x.48, <pk(x.47), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.44
+    
+    115. IDc   = IDc.28
+         certC = certC.29
+         certT = cert(pk(x.47), x.48, z.44)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, pkTe.31>, x.47)
+         skC   = one
+         z     = cert_id(certC.29)
+         z.1   = pkTe.31
+         z.2   = verify(x.48, <pk(x.47), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.44
+    
+    116. IDc   = IDc.28
+         certC = certC.29
+         certT = cert(pk(x.47), sign(<pk(x.47), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = z.40^x.50
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, z.40^x.50>, x.47)
+         skC   = inv(x.50)
+         z     = cert_id(certC.29)
+         z.1   = z.40
+         z.2   = true
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.44
+    
+    117. IDc   = IDc.28
+         certC = certC.29
+         certT = cert(pk(x.47), sign(<pk(x.47), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = z.40^inv(skC.36)
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, z.40^inv(skC.36)>, x.47)
+         skC   = skC.36
+         z     = cert_id(certC.29)
+         z.1   = z.40
+         z.2   = true
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.44
+    
+    118. IDc   = IDc.28
+         certC = certC.29
+         certT = cert(pk(x.47), sign(<pk(x.47), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = x.49^x.50
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, x.49^x.50>, x.47)
+         skC   = skC.36
+         z     = cert_id(certC.29)
+         z.1   = x.49^(skC.36*x.50)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.29),
+                        <cert_pk(certC.29), cert_id(certC.29), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.44
+    
+    119. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = certT.30
+         pkTe  = x.49^(x.50*x.51*inv(x.52))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.51))
+         z     = z.39
+         z.1   = x.49^x.50
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.49^(x.50*x.51*inv(x.52))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    120. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = certT.30
+         pkTe  = x.49^(x.50*inv((skC.36*x.51)))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = skC.36
+         z     = z.39
+         z.1   = x.49^(x.50*inv(x.51))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.49^(x.50*inv((skC.36*x.51)))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    121. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = certT.30
+         pkTe  = x.49^(x.50*inv((x.51*x.52)))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.50))
+         z     = z.39
+         z.1   = x.49^inv(x.51)
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.49^(x.50*inv((x.51*x.52)))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    122. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = cert(x.48, x.49, z.44)
+         pkTe  = z.40^x.52
+         r1    = r1.33
+         s1    = s1.35
+         skC   = inv(x.52)
+         z     = z.39
+         z.1   = z.40
+         z.2   = verify(x.49, <x.48, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, z.40^x.52>, x.48)
+         z.5   = z.44
+    
+    123. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = cert(x.48, x.49, z.44)
+         pkTe  = z.40^inv(skC.36)
+         r1    = r1.33
+         s1    = s1.35
+         skC   = skC.36
+         z     = z.39
+         z.1   = z.40
+         z.2   = verify(x.49, <x.48, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, z.40^inv(skC.36)>, x.48)
+         z.5   = z.44
+    
+    124. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = cert(x.48, x.49, z.44)
+         pkTe  = x.51^x.52
+         r1    = r1.33
+         s1    = s1.35
+         skC   = skC.36
+         z     = z.39
+         z.1   = x.51^(skC.36*x.52)
+         z.2   = verify(x.49, <x.48, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.51^x.52>, x.48)
+         z.5   = z.44
+    
+    125. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = cert(x.48, sign(<x.48, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = z.40^(x.51*inv(x.52))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.51))
+         z     = z.39
+         z.1   = z.40
+         z.2   = true
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, z.40^(x.51*inv(x.52))>, x.48)
+         z.5   = z.44
+    
+    126. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = cert(x.48, sign(<x.48, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = x.50^inv((skC.36*x.51))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = skC.36
+         z     = z.39
+         z.1   = x.50^inv(x.51)
+         z.2   = true
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.50^inv((skC.36*x.51))>, x.48)
+         z.5   = z.44
+    
+    127. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = cert(x.48, sign(<x.48, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = x.50^(x.51*x.52)
+         r1    = r1.33
+         s1    = s1.35
+         skC   = inv(x.51)
+         z     = z.39
+         z.1   = x.50^x.52
+         z.2   = true
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.50^(x.51*x.52)>, x.48)
+         z.5   = z.44
+    
+    128. IDc   = IDc.28
+         certC = cert(x.45, x.46, z.39)
+         certT = cert(x.48, sign(<x.48, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = x.50^(x.51*inv(skC.36))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = skC.36
+         z     = z.39
+         z.1   = x.50^x.51
+         z.2   = true
+         z.3   = verify(x.46, <x.45, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.50^(x.51*inv(skC.36))>, x.48)
+         z.5   = z.44
+    
+    129. IDc   = IDc.28
+         certC = cert(x.45, sign(<x.45, z.39, 'chip'>, ca_sk), z.39)
+         certT = certT.30
+         pkTe  = x.48^(x.49*x.50*inv((x.51*x.52)))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.50))
+         z     = z.39
+         z.1   = x.48^(x.49*inv(x.51))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.48^(x.49*x.50*inv((x.51*x.52)))>,
+                        cert_pk(certT.30))
+         z.5   = cert_id(certT.30)
+    
+    130. IDc   = IDc.28
+         certC = cert(x.45, sign(<x.45, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(x.47, x.48, z.44)
+         pkTe  = z.40^(x.51*inv(x.52))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.51))
+         z     = z.39
+         z.1   = z.40
+         z.2   = verify(x.48, <x.47, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.28, r1.33, z.40^(x.51*inv(x.52))>, x.47)
+         z.5   = z.44
+    
+    131. IDc   = IDc.28
+         certC = cert(x.45, sign(<x.45, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(x.47, x.48, z.44)
+         pkTe  = x.50^inv((skC.36*x.51))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = skC.36
+         z     = z.39
+         z.1   = x.50^inv(x.51)
+         z.2   = verify(x.48, <x.47, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.50^inv((skC.36*x.51))>, x.47)
+         z.5   = z.44
+    
+    132. IDc   = IDc.28
+         certC = cert(x.45, sign(<x.45, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(x.47, x.48, z.44)
+         pkTe  = x.50^(x.51*x.52)
+         r1    = r1.33
+         s1    = s1.35
+         skC   = inv(x.51)
+         z     = z.39
+         z.1   = x.50^x.52
+         z.2   = verify(x.48, <x.47, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.50^(x.51*x.52)>, x.47)
+         z.5   = z.44
+    
+    133. IDc   = IDc.28
+         certC = cert(x.45, sign(<x.45, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(x.47, x.48, z.44)
+         pkTe  = x.50^(x.51*inv(skC.36))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = skC.36
+         z     = z.39
+         z.1   = x.50^x.51
+         z.2   = verify(x.48, <x.47, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.50^(x.51*inv(skC.36))>, x.47)
+         z.5   = z.44
+    
+    134. IDc   = IDc.28
+         certC = cert(x.45, sign(<x.45, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(x.47, sign(<x.47, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = x.49^(x.50*x.51*inv(x.52))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.51))
+         z     = z.39
+         z.1   = x.49^x.50
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.49^(x.50*x.51*inv(x.52))>, x.47)
+         z.5   = z.44
+    
+    135. IDc   = IDc.28
+         certC = cert(x.45, sign(<x.45, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(x.47, sign(<x.47, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = x.49^(x.50*inv((skC.36*x.51)))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = skC.36
+         z     = z.39
+         z.1   = x.49^(x.50*inv(x.51))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.49^(x.50*inv((skC.36*x.51)))>,
+                        x.47)
+         z.5   = z.44
+    
+    136. IDc   = IDc.28
+         certC = cert(x.45, sign(<x.45, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(x.47, sign(<x.47, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = x.49^(x.50*inv((x.51*x.52)))
+         r1    = r1.33
+         s1    = s1.35
+         skC   = (x.52*inv(x.50))
+         z     = z.39
+         z.1   = x.49^inv(x.51)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.28, r1.33, x.49^(x.50*inv((x.51*x.52)))>,
+                        x.47)
+         z.5   = z.44
+    
+    137. IDc   = IDc.28
+         certC = cert(x.46, x.47, z.39)
+         certT = cert(pk(x.49), x.50, z.44)
+         pkTe  = DH_neutral
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, DH_neutral>, x.49)
+         z     = z.39
+         z.1   = DH_neutral
+         z.2   = verify(x.50, <pk(x.49), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <x.46, z.39, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.44
+    
+    138. IDc   = IDc.28
+         certC = cert(x.46, x.47, z.39)
+         certT = cert(pk(x.49), sign(<pk(x.49), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, pkTe.31>, x.49)
+         skC   = one
+         z     = z.39
+         z.1   = pkTe.31
+         z.2   = true
+         z.3   = verify(x.47, <x.46, z.39, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.44
+    
+    139. IDc   = IDc.28
+         certC = cert(x.46, sign(<x.46, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(pk(x.48), x.49, z.44)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, pkTe.31>, x.48)
+         skC   = one
+         z     = z.39
+         z.1   = pkTe.31
+         z.2   = verify(x.49, <pk(x.48), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.44
+    
+    140. IDc   = IDc.28
+         certC = cert(x.46, sign(<x.46, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(pk(x.48), sign(<pk(x.48), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, pkTe.31>, x.48)
+         skC   = skC.36
+         z     = z.39
+         z.1   = pkTe.31^skC.36
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.44
+    
+    141. IDc   = IDc.28
+         certC = cert(x.46, sign(<x.46, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(pk(x.48), sign(<pk(x.48), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = z.40^x.51
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, z.40^x.51>, x.48)
+         skC   = inv(x.51)
+         z     = z.39
+         z.1   = z.40
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.44
+    
+    142. IDc   = IDc.28
+         certC = cert(x.46, sign(<x.46, z.39, 'chip'>, ca_sk), z.39)
+         certT = cert(pk(x.48), sign(<pk(x.48), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = z.40^inv(skC.36)
+         r1    = r1.33
+         s1    = sign(<IDc.28, r1.33, z.40^inv(skC.36)>, x.48)
+         skC   = skC.36
+         z     = z.39
+         z.1   = z.40
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.44
+    
+    143. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^inv((x.47*x.48))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.47*x.53*inv(x.54))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.53*inv((x.48*x.54)))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^inv((x.47*x.48))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    144. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*x.48)
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.53*inv((x.47*x.54)))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.48*x.53*inv(x.54))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*x.48)>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    145. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*x.48*inv(x.49))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = inv((x.48*x.54))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.47*inv((x.49*x.54)))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*x.48*inv(x.49))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    146. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*x.48*inv(x.49))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.49*x.54*inv(x.47))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.48*x.54)
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*x.48*inv(x.49))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    147. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*x.48*inv(x.49))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.49*inv((x.47*x.54)))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.48*inv(x.54))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*x.48*inv(x.49))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    148. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*inv(x.48))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.48*x.53*inv((x.47*x.54)))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.53*inv(x.54))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*inv(x.48))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    149. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*inv(x.48))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.53*inv(x.54))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.47*x.53*inv((x.48*x.54)))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*inv(x.48))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    150. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*inv(x.48))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.53*inv((x.47*x.54)))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.53*inv((x.48*x.54)))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*inv(x.48))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    151. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*inv((x.48*x.49)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.48*x.54)
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.47*x.54*inv(x.49))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*inv((x.48*x.49)))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    152. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*inv((x.48*x.49)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.48*x.54*inv(x.47))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.54*inv(x.49))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*inv((x.48*x.49)))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    153. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*inv((x.48*x.49)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.48*inv(x.54))
+         z     = cert_id(certC.30)
+         z.1   = x.46^(x.47*inv((x.49*x.54)))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*inv((x.48*x.49)))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    154. IDc   = IDc.29
+         certC = certC.30
+         certT = certT.31
+         pkTe  = x.46^(x.47*inv((x.48*x.49)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.48*inv((x.47*x.54)))
+         z     = cert_id(certC.30)
+         z.1   = x.46^inv((x.49*x.54))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.46^(x.47*inv((x.48*x.49)))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    155. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(x.46, sign(<x.46, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.48^x.49
+         r1    = r1.34
+         s1    = s1.36
+         skC   = inv((x.49*x.54))
+         z     = cert_id(certC.30)
+         z.1   = x.48^inv(x.54)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.48^x.49>, x.46)
+         z.5   = z.45
+    
+    156. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(x.46, sign(<x.46, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.48^x.49
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.54*inv(x.49))
+         z     = cert_id(certC.30)
+         z.1   = x.48^x.54
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.48^x.49>, x.46)
+         z.5   = z.45
+    
+    157. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(x.46, sign(<x.46, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.48^inv(x.49)
+         r1    = r1.34
+         s1    = s1.36
+         skC   = inv(x.54)
+         z     = cert_id(certC.30)
+         z.1   = x.48^inv((x.49*x.54))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.48^inv(x.49)>, x.46)
+         z.5   = z.45
+    
+    158. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(x.46, sign(<x.46, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.48^inv(x.49)
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.49*x.54)
+         z     = cert_id(certC.30)
+         z.1   = x.48^x.54
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.48^inv(x.49)>, x.46)
+         z.5   = z.45
+    
+    159. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(pk(x.48), x.49, z.45)
+         pkTe  = z.41^x.52
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, z.41^x.52>, x.48)
+         skC   = inv(x.52)
+         z     = cert_id(certC.30)
+         z.1   = z.41
+         z.2   = verify(x.49, <pk(x.48), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    160. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(pk(x.48), x.49, z.45)
+         pkTe  = z.41^inv(skC.37)
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, z.41^inv(skC.37)>, x.48)
+         skC   = skC.37
+         z     = cert_id(certC.30)
+         z.1   = z.41
+         z.2   = verify(x.49, <pk(x.48), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    161. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(pk(x.48), x.49, z.45)
+         pkTe  = x.51^x.52
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, x.51^x.52>, x.48)
+         skC   = skC.37
+         z     = cert_id(certC.30)
+         z.1   = x.51^(skC.37*x.52)
+         z.2   = verify(x.49, <pk(x.48), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    162. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(pk(x.48), sign(<pk(x.48), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = z.41^(x.51*inv(x.52))
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, z.41^(x.51*inv(x.52))>, x.48)
+         skC   = (x.52*inv(x.51))
+         z     = cert_id(certC.30)
+         z.1   = z.41
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    163. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(pk(x.48), sign(<pk(x.48), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.50^inv((skC.37*x.51))
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, x.50^inv((skC.37*x.51))>, x.48)
+         skC   = skC.37
+         z     = cert_id(certC.30)
+         z.1   = x.50^inv(x.51)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    164. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(pk(x.48), sign(<pk(x.48), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.50^(x.51*x.52)
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, x.50^(x.51*x.52)>, x.48)
+         skC   = inv(x.51)
+         z     = cert_id(certC.30)
+         z.1   = x.50^x.52
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    165. IDc   = IDc.29
+         certC = certC.30
+         certT = cert(pk(x.48), sign(<pk(x.48), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.50^(x.51*inv(skC.37))
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, x.50^(x.51*inv(skC.37))>, x.48)
+         skC   = skC.37
+         z     = cert_id(certC.30)
+         z.1   = x.50^x.51
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    166. IDc   = IDc.29
+         certC = cert(x.46, x.47, z.40)
+         certT = certT.31
+         pkTe  = x.50^(x.51*x.52*inv((x.53*x.54)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.54*inv(x.52))
+         z     = z.40
+         z.1   = x.50^(x.51*inv(x.53))
+         z.2   = verify(cert_sig(certT.31),
+                        <cert_pk(certT.31), cert_id(certT.31), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <x.46, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.50^(x.51*x.52*inv((x.53*x.54)))>,
+                        cert_pk(certT.31))
+         z.5   = cert_id(certT.31)
+    
+    167. IDc   = IDc.29
+         certC = cert(x.46, x.47, z.40)
+         certT = cert(x.49, x.50, z.45)
+         pkTe  = z.41^(x.53*inv(x.54))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.54*inv(x.53))
+         z     = z.40
+         z.1   = z.41
+         z.2   = verify(x.50, <x.49, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <x.46, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, z.41^(x.53*inv(x.54))>, x.49)
+         z.5   = z.45
+    
+    168. IDc   = IDc.29
+         certC = cert(x.46, x.47, z.40)
+         certT = cert(x.49, x.50, z.45)
+         pkTe  = x.52^inv((skC.37*x.53))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = skC.37
+         z     = z.40
+         z.1   = x.52^inv(x.53)
+         z.2   = verify(x.50, <x.49, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <x.46, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.52^inv((skC.37*x.53))>, x.49)
+         z.5   = z.45
+    
+    169. IDc   = IDc.29
+         certC = cert(x.46, x.47, z.40)
+         certT = cert(x.49, x.50, z.45)
+         pkTe  = x.52^(x.53*x.54)
+         r1    = r1.34
+         s1    = s1.36
+         skC   = inv(x.53)
+         z     = z.40
+         z.1   = x.52^x.54
+         z.2   = verify(x.50, <x.49, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <x.46, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.52^(x.53*x.54)>, x.49)
+         z.5   = z.45
+    
+    170. IDc   = IDc.29
+         certC = cert(x.46, x.47, z.40)
+         certT = cert(x.49, x.50, z.45)
+         pkTe  = x.52^(x.53*inv(skC.37))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = skC.37
+         z     = z.40
+         z.1   = x.52^x.53
+         z.2   = verify(x.50, <x.49, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <x.46, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.52^(x.53*inv(skC.37))>, x.49)
+         z.5   = z.45
+    
+    171. IDc   = IDc.29
+         certC = cert(x.46, x.47, z.40)
+         certT = cert(x.49, sign(<x.49, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.51^(x.52*x.53*inv(x.54))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.54*inv(x.53))
+         z     = z.40
+         z.1   = x.51^x.52
+         z.2   = true
+         z.3   = verify(x.47, <x.46, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.51^(x.52*x.53*inv(x.54))>, x.49)
+         z.5   = z.45
+    
+    172. IDc   = IDc.29
+         certC = cert(x.46, x.47, z.40)
+         certT = cert(x.49, sign(<x.49, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.51^(x.52*inv((skC.37*x.53)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = skC.37
+         z     = z.40
+         z.1   = x.51^(x.52*inv(x.53))
+         z.2   = true
+         z.3   = verify(x.47, <x.46, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.51^(x.52*inv((skC.37*x.53)))>,
+                        x.49)
+         z.5   = z.45
+    
+    173. IDc   = IDc.29
+         certC = cert(x.46, x.47, z.40)
+         certT = cert(x.49, sign(<x.49, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.51^(x.52*inv((x.53*x.54)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.54*inv(x.52))
+         z     = z.40
+         z.1   = x.51^inv(x.53)
+         z.2   = true
+         z.3   = verify(x.47, <x.46, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.51^(x.52*inv((x.53*x.54)))>,
+                        x.49)
+         z.5   = z.45
+    
+    174. IDc   = IDc.29
+         certC = cert(x.46, sign(<x.46, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(x.48, x.49, z.45)
+         pkTe  = x.51^(x.52*x.53*inv(x.54))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.54*inv(x.53))
+         z     = z.40
+         z.1   = x.51^x.52
+         z.2   = verify(x.49, <x.48, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.51^(x.52*x.53*inv(x.54))>, x.48)
+         z.5   = z.45
+    
+    175. IDc   = IDc.29
+         certC = cert(x.46, sign(<x.46, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(x.48, x.49, z.45)
+         pkTe  = x.51^(x.52*inv((skC.37*x.53)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = skC.37
+         z     = z.40
+         z.1   = x.51^(x.52*inv(x.53))
+         z.2   = verify(x.49, <x.48, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.51^(x.52*inv((skC.37*x.53)))>,
+                        x.48)
+         z.5   = z.45
+    
+    176. IDc   = IDc.29
+         certC = cert(x.46, sign(<x.46, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(x.48, x.49, z.45)
+         pkTe  = x.51^(x.52*inv((x.53*x.54)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.54*inv(x.52))
+         z     = z.40
+         z.1   = x.51^inv(x.53)
+         z.2   = verify(x.49, <x.48, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.51^(x.52*inv((x.53*x.54)))>,
+                        x.48)
+         z.5   = z.45
+    
+    177. IDc   = IDc.29
+         certC = cert(x.46, sign(<x.46, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(x.48, sign(<x.48, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.50^(x.51*x.52*inv((x.53*x.54)))
+         r1    = r1.34
+         s1    = s1.36
+         skC   = (x.54*inv(x.52))
+         z     = z.40
+         z.1   = x.50^(x.51*inv(x.53))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.36, <IDc.29, r1.34, x.50^(x.51*x.52*inv((x.53*x.54)))>,
+                        x.48)
+         z.5   = z.45
+    
+    178. IDc   = IDc.29
+         certC = cert(x.47, x.48, z.40)
+         certT = cert(pk(x.50), x.51, z.45)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, pkTe.32>, x.50)
+         skC   = one
+         z     = z.40
+         z.1   = pkTe.32
+         z.2   = verify(x.51, <pk(x.50), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.48, <x.47, z.40, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    179. IDc   = IDc.29
+         certC = cert(x.47, x.48, z.40)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, pkTe.32>, x.50)
+         skC   = skC.37
+         z     = z.40
+         z.1   = pkTe.32^skC.37
+         z.2   = true
+         z.3   = verify(x.48, <x.47, z.40, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    180. IDc   = IDc.29
+         certC = cert(x.47, x.48, z.40)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = z.41^x.53
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, z.41^x.53>, x.50)
+         skC   = inv(x.53)
+         z     = z.40
+         z.1   = z.41
+         z.2   = true
+         z.3   = verify(x.48, <x.47, z.40, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    181. IDc   = IDc.29
+         certC = cert(x.47, x.48, z.40)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = z.41^inv(skC.37)
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, z.41^inv(skC.37)>, x.50)
+         skC   = skC.37
+         z     = z.40
+         z.1   = z.41
+         z.2   = true
+         z.3   = verify(x.48, <x.47, z.40, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+    182. IDc   = IDc.29
+         certC = cert(x.47, sign(<x.47, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(pk(x.49), x.50, z.45)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, pkTe.32>, x.49)
+         skC   = skC.37
+         z     = z.40
+         z.1   = pkTe.32^skC.37
+         z.2   = verify(x.50, <pk(x.49), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+    183. IDc   = IDc.29
+         certC = cert(x.47, sign(<x.47, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(pk(x.49), x.50, z.45)
+         pkTe  = z.41^x.53
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, z.41^x.53>, x.49)
+         skC   = inv(x.53)
+         z     = z.40
+         z.1   = z.41
+         z.2   = verify(x.50, <pk(x.49), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+    184. IDc   = IDc.29
+         certC = cert(x.47, sign(<x.47, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(pk(x.49), x.50, z.45)
+         pkTe  = z.41^inv(skC.37)
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, z.41^inv(skC.37)>, x.49)
+         skC   = skC.37
+         z     = z.40
+         z.1   = z.41
+         z.2   = verify(x.50, <pk(x.49), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+    185. IDc   = IDc.29
+         certC = cert(x.47, sign(<x.47, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(pk(x.49), sign(<pk(x.49), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = z.41^(x.52*inv(x.53))
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, z.41^(x.52*inv(x.53))>, x.49)
+         skC   = (x.53*inv(x.52))
+         z     = z.40
+         z.1   = z.41
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+    186. IDc   = IDc.29
+         certC = cert(x.47, sign(<x.47, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(pk(x.49), sign(<pk(x.49), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.51^x.52
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, x.51^x.52>, x.49)
+         skC   = skC.37
+         z     = z.40
+         z.1   = x.51^(skC.37*x.52)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+    187. IDc   = IDc.29
+         certC = cert(x.47, sign(<x.47, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(pk(x.49), sign(<pk(x.49), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.51^inv((skC.37*x.52))
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, x.51^inv((skC.37*x.52))>, x.49)
+         skC   = skC.37
+         z     = z.40
+         z.1   = x.51^inv(x.52)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+    188. IDc   = IDc.29
+         certC = cert(x.47, sign(<x.47, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(pk(x.49), sign(<pk(x.49), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.51^(x.52*x.53)
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, x.51^(x.52*x.53)>, x.49)
+         skC   = inv(x.52)
+         z     = z.40
+         z.1   = x.51^x.53
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+    189. IDc   = IDc.29
+         certC = cert(x.47, sign(<x.47, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(pk(x.49), sign(<pk(x.49), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = x.51^(x.52*inv(skC.37))
+         r1    = r1.34
+         s1    = sign(<IDc.29, r1.34, x.51^(x.52*inv(skC.37))>, x.49)
+         skC   = skC.37
+         z     = z.40
+         z.1   = x.51^x.52
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+    190. IDc   = IDc.30
+         certC = certC.31
+         certT = certT.32
+         pkTe  = x.47^(x.48*x.49*inv(x.50))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.50*x.55*inv((x.48*x.56)))
+         z     = cert_id(certC.31)
+         z.1   = x.47^(x.49*x.55*inv(x.56))
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.47^(x.48*x.49*inv(x.50))>,
+                        cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    191. IDc   = IDc.30
+         certC = certC.31
+         certT = certT.32
+         pkTe  = x.47^(x.48*x.49*inv(x.50))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.55*inv((x.48*x.56)))
+         z     = cert_id(certC.31)
+         z.1   = x.47^(x.49*x.55*inv((x.50*x.56)))
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.47^(x.48*x.49*inv(x.50))>,
+                        cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    192. IDc   = IDc.30
+         certC = certC.31
+         certT = certT.32
+         pkTe  = x.47^(x.48*x.49*inv((x.50*x.51)))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.50*x.56*inv(x.48))
+         z     = cert_id(certC.31)
+         z.1   = x.47^(x.49*x.56*inv(x.51))
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.47^(x.48*x.49*inv((x.50*x.51)))>,
+                        cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    193. IDc   = IDc.30
+         certC = certC.31
+         certT = certT.32
+         pkTe  = x.47^(x.48*x.49*inv((x.50*x.51)))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.50*inv((x.48*x.56)))
+         z     = cert_id(certC.31)
+         z.1   = x.47^(x.49*inv((x.51*x.56)))
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.47^(x.48*x.49*inv((x.50*x.51)))>,
+                        cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    194. IDc   = IDc.30
+         certC = certC.31
+         certT = certT.32
+         pkTe  = x.47^(x.48*inv((x.49*x.50)))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.49*x.55*inv(x.56))
+         z     = cert_id(certC.31)
+         z.1   = x.47^(x.48*x.55*inv((x.50*x.56)))
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.47^(x.48*inv((x.49*x.50)))>,
+                        cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    195. IDc   = IDc.30
+         certC = certC.31
+         certT = certT.32
+         pkTe  = x.47^(x.48*inv((x.49*x.50)))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.49*x.55*inv((x.48*x.56)))
+         z     = cert_id(certC.31)
+         z.1   = x.47^(x.55*inv((x.50*x.56)))
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.47^(x.48*inv((x.49*x.50)))>,
+                        cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    196. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, x.48, z.46)
+         pkTe  = x.50^x.51
+         r1    = r1.35
+         s1    = s1.37
+         skC   = inv((x.51*x.56))
+         z     = cert_id(certC.31)
+         z.1   = x.50^inv(x.56)
+         z.2   = verify(x.48, <x.47, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.50^x.51>, x.47)
+         z.5   = z.46
+    
+    197. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, x.48, z.46)
+         pkTe  = x.50^x.51
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.56*inv(x.51))
+         z     = cert_id(certC.31)
+         z.1   = x.50^x.56
+         z.2   = verify(x.48, <x.47, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.50^x.51>, x.47)
+         z.5   = z.46
+    
+    198. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, x.48, z.46)
+         pkTe  = x.50^inv(x.51)
+         r1    = r1.35
+         s1    = s1.37
+         skC   = inv(x.56)
+         z     = cert_id(certC.31)
+         z.1   = x.50^inv((x.51*x.56))
+         z.2   = verify(x.48, <x.47, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.50^inv(x.51)>, x.47)
+         z.5   = z.46
+    
+    199. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, x.48, z.46)
+         pkTe  = x.50^inv(x.51)
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.51*x.56)
+         z     = cert_id(certC.31)
+         z.1   = x.50^x.56
+         z.2   = verify(x.48, <x.47, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.50^inv(x.51)>, x.47)
+         z.5   = z.46
+    
+    200. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^x.50
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.55*inv((x.50*x.56)))
+         z     = cert_id(certC.31)
+         z.1   = x.49^(x.55*inv(x.56))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^x.50>, x.47)
+         z.5   = z.46
+    
+    201. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^inv(x.50)
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.55*inv(x.56))
+         z     = cert_id(certC.31)
+         z.1   = x.49^(x.55*inv((x.50*x.56)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^inv(x.50)>, x.47)
+         z.5   = z.46
+    
+    202. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^inv((x.50*x.51))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.50*x.56)
+         z     = cert_id(certC.31)
+         z.1   = x.49^(x.56*inv(x.51))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^inv((x.50*x.51))>, x.47)
+         z.5   = z.46
+    
+    203. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^inv((x.50*x.51))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.50*inv(x.56))
+         z     = cert_id(certC.31)
+         z.1   = x.49^inv((x.51*x.56))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^inv((x.50*x.51))>, x.47)
+         z.5   = z.46
+    
+    204. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^(x.50*x.51)
+         r1    = r1.35
+         s1    = s1.37
+         skC   = inv((x.50*x.56))
+         z     = cert_id(certC.31)
+         z.1   = x.49^(x.51*inv(x.56))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^(x.50*x.51)>, x.47)
+         z.5   = z.46
+    
+    205. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^(x.50*x.51)
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.56*inv(x.50))
+         z     = cert_id(certC.31)
+         z.1   = x.49^(x.51*x.56)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^(x.50*x.51)>, x.47)
+         z.5   = z.46
+    
+    206. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^(x.50*inv(x.51))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = inv(x.56)
+         z     = cert_id(certC.31)
+         z.1   = x.49^(x.50*inv((x.51*x.56)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^(x.50*inv(x.51))>, x.47)
+         z.5   = z.46
+    
+    207. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^(x.50*inv(x.51))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = inv((x.50*x.56))
+         z     = cert_id(certC.31)
+         z.1   = x.49^inv((x.51*x.56))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^(x.50*inv(x.51))>, x.47)
+         z.5   = z.46
+    
+    208. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^(x.50*inv(x.51))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.51*x.56)
+         z     = cert_id(certC.31)
+         z.1   = x.49^(x.50*x.56)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^(x.50*inv(x.51))>, x.47)
+         z.5   = z.46
+    
+    209. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^(x.50*inv(x.51))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.51*x.56*inv(x.50))
+         z     = cert_id(certC.31)
+         z.1   = x.49^x.56
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^(x.50*inv(x.51))>, x.47)
+         z.5   = z.46
+    
+    210. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(x.47, sign(<x.47, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.49^(x.50*inv(x.51))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.51*inv((x.50*x.56)))
+         z     = cert_id(certC.31)
+         z.1   = x.49^inv(x.56)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.49^(x.50*inv(x.51))>, x.47)
+         z.5   = z.46
+    
+    211. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), x.50, z.46)
+         pkTe  = z.42^(x.53*inv(x.54))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, z.42^(x.53*inv(x.54))>, x.49)
+         skC   = (x.54*inv(x.53))
+         z     = cert_id(certC.31)
+         z.1   = z.42
+         z.2   = verify(x.50, <pk(x.49), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    212. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), x.50, z.46)
+         pkTe  = x.52^inv((skC.38*x.53))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^inv((skC.38*x.53))>, x.49)
+         skC   = skC.38
+         z     = cert_id(certC.31)
+         z.1   = x.52^inv(x.53)
+         z.2   = verify(x.50, <pk(x.49), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    213. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), x.50, z.46)
+         pkTe  = x.52^(x.53*x.54)
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^(x.53*x.54)>, x.49)
+         skC   = inv(x.53)
+         z     = cert_id(certC.31)
+         z.1   = x.52^x.54
+         z.2   = verify(x.50, <pk(x.49), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    214. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), x.50, z.46)
+         pkTe  = x.52^(x.53*inv(skC.38))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^(x.53*inv(skC.38))>, x.49)
+         skC   = skC.38
+         z     = cert_id(certC.31)
+         z.1   = x.52^x.53
+         z.2   = verify(x.50, <pk(x.49), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    215. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), sign(<pk(x.49), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.51^x.52
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.51^x.52>, x.49)
+         skC   = inv((x.52*x.56))
+         z     = cert_id(certC.31)
+         z.1   = x.51^inv(x.56)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    216. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), sign(<pk(x.49), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.51^x.52
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.51^x.52>, x.49)
+         skC   = (x.56*inv(x.52))
+         z     = cert_id(certC.31)
+         z.1   = x.51^x.56
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    217. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), sign(<pk(x.49), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.51^inv(x.52)
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.51^inv(x.52)>, x.49)
+         skC   = inv(x.56)
+         z     = cert_id(certC.31)
+         z.1   = x.51^inv((x.52*x.56))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    218. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), sign(<pk(x.49), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.51^inv(x.52)
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.51^inv(x.52)>, x.49)
+         skC   = (x.52*x.56)
+         z     = cert_id(certC.31)
+         z.1   = x.51^x.56
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    219. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), sign(<pk(x.49), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.51^(x.52*x.53*inv(x.54))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.51^(x.52*x.53*inv(x.54))>, x.49)
+         skC   = (x.54*inv(x.53))
+         z     = cert_id(certC.31)
+         z.1   = x.51^x.52
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    220. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), sign(<pk(x.49), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.51^(x.52*inv((skC.38*x.53)))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.51^(x.52*inv((skC.38*x.53)))>, x.49)
+         skC   = skC.38
+         z     = cert_id(certC.31)
+         z.1   = x.51^(x.52*inv(x.53))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    221. IDc   = IDc.30
+         certC = certC.31
+         certT = cert(pk(x.49), sign(<pk(x.49), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.51^(x.52*inv((x.53*x.54)))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.51^(x.52*inv((x.53*x.54)))>, x.49)
+         skC   = (x.54*inv(x.52))
+         z     = cert_id(certC.31)
+         z.1   = x.51^inv(x.53)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    222. IDc   = IDc.30
+         certC = cert(x.47, x.48, z.41)
+         certT = cert(x.50, x.51, z.46)
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.56*inv(x.55))
+         z     = z.41
+         z.1   = x.53^x.54
+         z.2   = verify(x.51, <x.50, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.48, <x.47, z.41, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.53^(x.54*x.55*inv(x.56))>, x.50)
+         z.5   = z.46
+    
+    223. IDc   = IDc.30
+         certC = cert(x.47, x.48, z.41)
+         certT = cert(x.50, x.51, z.46)
+         pkTe  = x.53^(x.54*inv((skC.38*x.55)))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = skC.38
+         z     = z.41
+         z.1   = x.53^(x.54*inv(x.55))
+         z.2   = verify(x.51, <x.50, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.48, <x.47, z.41, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.53^(x.54*inv((skC.38*x.55)))>,
+                        x.50)
+         z.5   = z.46
+    
+    224. IDc   = IDc.30
+         certC = cert(x.47, x.48, z.41)
+         certT = cert(x.50, x.51, z.46)
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.56*inv(x.54))
+         z     = z.41
+         z.1   = x.53^inv(x.55)
+         z.2   = verify(x.51, <x.50, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.48, <x.47, z.41, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.53^(x.54*inv((x.55*x.56)))>,
+                        x.50)
+         z.5   = z.46
+    
+    225. IDc   = IDc.30
+         certC = cert(x.47, x.48, z.41)
+         certT = cert(x.50, sign(<x.50, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.52^(x.53*x.54*inv((x.55*x.56)))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.56*inv(x.54))
+         z     = z.41
+         z.1   = x.52^(x.53*inv(x.55))
+         z.2   = true
+         z.3   = verify(x.48, <x.47, z.41, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.52^(x.53*x.54*inv((x.55*x.56)))>,
+                        x.50)
+         z.5   = z.46
+    
+    226. IDc   = IDc.30
+         certC = cert(x.47, sign(<x.47, z.41, 'chip'>, ca_sk), z.41)
+         certT = certT.32
+         pkTe  = x.50^x.51
+         r1    = r1.35
+         s1    = s1.37
+         skC   = inv((x.51*x.56))
+         z     = z.41
+         z.1   = x.50^inv(x.56)
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.50^x.51>, cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    227. IDc   = IDc.30
+         certC = cert(x.47, sign(<x.47, z.41, 'chip'>, ca_sk), z.41)
+         certT = certT.32
+         pkTe  = x.50^x.51
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.56*inv(x.51))
+         z     = z.41
+         z.1   = x.50^x.56
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.50^x.51>, cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    228. IDc   = IDc.30
+         certC = cert(x.47, sign(<x.47, z.41, 'chip'>, ca_sk), z.41)
+         certT = certT.32
+         pkTe  = x.50^inv(x.51)
+         r1    = r1.35
+         s1    = s1.37
+         skC   = inv(x.56)
+         z     = z.41
+         z.1   = x.50^inv((x.51*x.56))
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.50^inv(x.51)>, cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    229. IDc   = IDc.30
+         certC = cert(x.47, sign(<x.47, z.41, 'chip'>, ca_sk), z.41)
+         certT = certT.32
+         pkTe  = x.50^inv(x.51)
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.51*x.56)
+         z     = z.41
+         z.1   = x.50^x.56
+         z.2   = verify(cert_sig(certT.32),
+                        <cert_pk(certT.32), cert_id(certT.32), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.50^inv(x.51)>, cert_pk(certT.32))
+         z.5   = cert_id(certT.32)
+    
+    230. IDc   = IDc.30
+         certC = cert(x.47, sign(<x.47, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(x.49, x.50, z.46)
+         pkTe  = x.52^(x.53*x.54*inv((x.55*x.56)))
+         r1    = r1.35
+         s1    = s1.37
+         skC   = (x.56*inv(x.54))
+         z     = z.41
+         z.1   = x.52^(x.53*inv(x.55))
+         z.2   = verify(x.50, <x.49, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.37, <IDc.30, r1.35, x.52^(x.53*x.54*inv((x.55*x.56)))>,
+                        x.49)
+         z.5   = z.46
+    
+    231. IDc   = IDc.30
+         certC = cert(x.48, x.49, z.41)
+         certT = cert(pk(x.51), x.52, z.46)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, pkTe.33>, x.51)
+         skC   = skC.38
+         z     = z.41
+         z.1   = pkTe.33^skC.38
+         z.2   = verify(x.52, <pk(x.51), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.48, z.41, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    232. IDc   = IDc.30
+         certC = cert(x.48, x.49, z.41)
+         certT = cert(pk(x.51), x.52, z.46)
+         pkTe  = z.42^x.55
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, z.42^x.55>, x.51)
+         skC   = inv(x.55)
+         z     = z.41
+         z.1   = z.42
+         z.2   = verify(x.52, <pk(x.51), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.48, z.41, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    233. IDc   = IDc.30
+         certC = cert(x.48, x.49, z.41)
+         certT = cert(pk(x.51), x.52, z.46)
+         pkTe  = z.42^inv(skC.38)
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, z.42^inv(skC.38)>, x.51)
+         skC   = skC.38
+         z     = z.41
+         z.1   = z.42
+         z.2   = verify(x.52, <pk(x.51), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.48, z.41, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    234. IDc   = IDc.30
+         certC = cert(x.48, x.49, z.41)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = z.42^(x.54*inv(x.55))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, z.42^(x.54*inv(x.55))>, x.51)
+         skC   = (x.55*inv(x.54))
+         z     = z.41
+         z.1   = z.42
+         z.2   = true
+         z.3   = verify(x.49, <x.48, z.41, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    235. IDc   = IDc.30
+         certC = cert(x.48, x.49, z.41)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.53^x.54
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.53^x.54>, x.51)
+         skC   = skC.38
+         z     = z.41
+         z.1   = x.53^(skC.38*x.54)
+         z.2   = true
+         z.3   = verify(x.49, <x.48, z.41, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    236. IDc   = IDc.30
+         certC = cert(x.48, x.49, z.41)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.53^inv((skC.38*x.54))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.53^inv((skC.38*x.54))>, x.51)
+         skC   = skC.38
+         z     = z.41
+         z.1   = x.53^inv(x.54)
+         z.2   = true
+         z.3   = verify(x.49, <x.48, z.41, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    237. IDc   = IDc.30
+         certC = cert(x.48, x.49, z.41)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.53^(x.54*x.55)>, x.51)
+         skC   = inv(x.54)
+         z     = z.41
+         z.1   = x.53^x.55
+         z.2   = true
+         z.3   = verify(x.49, <x.48, z.41, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    238. IDc   = IDc.30
+         certC = cert(x.48, x.49, z.41)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.53^(x.54*inv(skC.38))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.53^(x.54*inv(skC.38))>, x.51)
+         skC   = skC.38
+         z     = z.41
+         z.1   = x.53^x.54
+         z.2   = true
+         z.3   = verify(x.49, <x.48, z.41, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+    239. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), x.51, z.46)
+         pkTe  = z.42^(x.54*inv(x.55))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, z.42^(x.54*inv(x.55))>, x.50)
+         skC   = (x.55*inv(x.54))
+         z     = z.41
+         z.1   = z.42
+         z.2   = verify(x.51, <pk(x.50), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    240. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), x.51, z.46)
+         pkTe  = x.53^x.54
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.53^x.54>, x.50)
+         skC   = skC.38
+         z     = z.41
+         z.1   = x.53^(skC.38*x.54)
+         z.2   = verify(x.51, <pk(x.50), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    241. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), x.51, z.46)
+         pkTe  = x.53^inv((skC.38*x.54))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.53^inv((skC.38*x.54))>, x.50)
+         skC   = skC.38
+         z     = z.41
+         z.1   = x.53^inv(x.54)
+         z.2   = verify(x.51, <pk(x.50), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    242. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), x.51, z.46)
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.53^(x.54*x.55)>, x.50)
+         skC   = inv(x.54)
+         z     = z.41
+         z.1   = x.53^x.55
+         z.2   = verify(x.51, <pk(x.50), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    243. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), x.51, z.46)
+         pkTe  = x.53^(x.54*inv(skC.38))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.53^(x.54*inv(skC.38))>, x.50)
+         skC   = skC.38
+         z     = z.41
+         z.1   = x.53^x.54
+         z.2   = verify(x.51, <pk(x.50), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    244. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.52^x.53
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^x.53>, x.50)
+         skC   = inv((x.53*x.57))
+         z     = z.41
+         z.1   = x.52^inv(x.57)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    245. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.52^x.53
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^x.53>, x.50)
+         skC   = (x.57*inv(x.53))
+         z     = z.41
+         z.1   = x.52^x.57
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    246. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.52^inv(x.53)
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^inv(x.53)>, x.50)
+         skC   = inv(x.57)
+         z     = z.41
+         z.1   = x.52^inv((x.53*x.57))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    247. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.52^inv(x.53)
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^inv(x.53)>, x.50)
+         skC   = (x.53*x.57)
+         z     = z.41
+         z.1   = x.52^x.57
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    248. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.52^(x.53*x.54*inv(x.55))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^(x.53*x.54*inv(x.55))>, x.50)
+         skC   = (x.55*inv(x.54))
+         z     = z.41
+         z.1   = x.52^x.53
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    249. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.52^(x.53*inv((skC.38*x.54)))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^(x.53*inv((skC.38*x.54)))>, x.50)
+         skC   = skC.38
+         z     = z.41
+         z.1   = x.52^(x.53*inv(x.54))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    250. IDc   = IDc.30
+         certC = cert(x.48, sign(<x.48, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.35
+         s1    = sign(<IDc.30, r1.35, x.52^(x.53*inv((x.54*x.55)))>, x.50)
+         skC   = (x.55*inv(x.53))
+         z     = z.41
+         z.1   = x.52^inv(x.54)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+    251. IDc   = IDc.31
+         certC = certC.32
+         certT = certT.33
+         pkTe  = x.48^(x.49*x.50*inv((x.51*x.52)))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.51*x.57*inv((x.49*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.48^(x.50*x.57*inv((x.52*x.58)))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.48^(x.49*x.50*inv((x.51*x.52)))>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    252. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^x.52
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.57*inv((x.52*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.51^(x.57*inv(x.58))
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^x.52>, x.48)
+         z.5   = z.47
+    
+    253. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^inv(x.52)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.57*inv(x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.51^(x.57*inv((x.52*x.58)))
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^inv(x.52)>, x.48)
+         z.5   = z.47
+    
+    254. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^inv((x.52*x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.51^(x.58*inv(x.53))
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^inv((x.52*x.53))>, x.48)
+         z.5   = z.47
+    
+    255. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^inv((x.52*x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*inv(x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.51^inv((x.53*x.58))
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^inv((x.52*x.53))>, x.48)
+         z.5   = z.47
+    
+    256. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^(x.52*x.53)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv((x.52*x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.51^(x.53*inv(x.58))
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*x.53)>, x.48)
+         z.5   = z.47
+    
+    257. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^(x.52*x.53)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.58*inv(x.52))
+         z     = cert_id(certC.32)
+         z.1   = x.51^(x.53*x.58)
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*x.53)>, x.48)
+         z.5   = z.47
+    
+    258. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv(x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.51^(x.52*inv((x.53*x.58)))
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>, x.48)
+         z.5   = z.47
+    
+    259. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv((x.52*x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.51^inv((x.53*x.58))
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>, x.48)
+         z.5   = z.47
+    
+    260. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.51^(x.52*x.58)
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>, x.48)
+         z.5   = z.47
+    
+    261. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*x.58*inv(x.52))
+         z     = cert_id(certC.32)
+         z.1   = x.51^x.58
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>, x.48)
+         z.5   = z.47
+    
+    262. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, x.49, z.47)
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*inv((x.52*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.51^inv(x.58)
+         z.2   = verify(x.49, <x.48, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>, x.48)
+         z.5   = z.47
+    
+    263. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^inv((x.51*x.52))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.51*x.57*inv(x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.57*inv((x.52*x.58)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^inv((x.51*x.52))>, x.48)
+         z.5   = z.47
+    
+    264. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*x.52)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.57*inv((x.51*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.52*x.57*inv(x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*x.52)>, x.48)
+         z.5   = z.47
+    
+    265. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv((x.52*x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.51*inv((x.53*x.58)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*x.52*inv(x.53))>, x.48)
+         z.5   = z.47
+    
+    266. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*x.58*inv(x.51))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.52*x.58)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*x.52*inv(x.53))>, x.48)
+         z.5   = z.47
+    
+    267. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*inv((x.51*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.52*inv(x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*x.52*inv(x.53))>, x.48)
+         z.5   = z.47
+    
+    268. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*inv(x.52))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*x.57*inv((x.51*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.57*inv(x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*inv(x.52))>, x.48)
+         z.5   = z.47
+    
+    269. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*inv(x.52))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.57*inv(x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.51*x.57*inv((x.52*x.58)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*inv(x.52))>, x.48)
+         z.5   = z.47
+    
+    270. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*inv(x.52))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.57*inv((x.51*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.57*inv((x.52*x.58)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*inv(x.52))>, x.48)
+         z.5   = z.47
+    
+    271. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*inv((x.52*x.53)))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.51*x.58*inv(x.53))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*inv((x.52*x.53)))>,
+                        x.48)
+         z.5   = z.47
+    
+    272. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*inv((x.52*x.53)))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*x.58*inv(x.51))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.58*inv(x.53))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*inv((x.52*x.53)))>,
+                        x.48)
+         z.5   = z.47
+    
+    273. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*inv((x.52*x.53)))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*inv(x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.50^(x.51*inv((x.53*x.58)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*inv((x.52*x.53)))>,
+                        x.48)
+         z.5   = z.47
+    
+    274. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(x.48, sign(<x.48, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.50^(x.51*inv((x.52*x.53)))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*inv((x.51*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.50^inv((x.53*x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.50^(x.51*inv((x.52*x.53)))>,
+                        x.48)
+         z.5   = z.47
+    
+    275. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), x.51, z.47)
+         pkTe  = x.53^x.54
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^x.54>, x.50)
+         skC   = inv((x.54*x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.53^inv(x.58)
+         z.2   = verify(x.51, <pk(x.50), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    276. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), x.51, z.47)
+         pkTe  = x.53^x.54
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^x.54>, x.50)
+         skC   = (x.58*inv(x.54))
+         z     = cert_id(certC.32)
+         z.1   = x.53^x.58
+         z.2   = verify(x.51, <pk(x.50), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    277. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), x.51, z.47)
+         pkTe  = x.53^inv(x.54)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^inv(x.54)>, x.50)
+         skC   = inv(x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.53^inv((x.54*x.58))
+         z.2   = verify(x.51, <pk(x.50), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    278. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), x.51, z.47)
+         pkTe  = x.53^inv(x.54)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^inv(x.54)>, x.50)
+         skC   = (x.54*x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.53^x.58
+         z.2   = verify(x.51, <pk(x.50), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    279. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), x.51, z.47)
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*x.55*inv(x.56))>, x.50)
+         skC   = (x.56*inv(x.55))
+         z     = cert_id(certC.32)
+         z.1   = x.53^x.54
+         z.2   = verify(x.51, <pk(x.50), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    280. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), x.51, z.47)
+         pkTe  = x.53^(x.54*inv((skC.39*x.55)))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*inv((skC.39*x.55)))>, x.50)
+         skC   = skC.39
+         z     = cert_id(certC.32)
+         z.1   = x.53^(x.54*inv(x.55))
+         z.2   = verify(x.51, <pk(x.50), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    281. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), x.51, z.47)
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*inv((x.55*x.56)))>, x.50)
+         skC   = (x.56*inv(x.54))
+         z     = cert_id(certC.32)
+         z.1   = x.53^inv(x.55)
+         z.2   = verify(x.51, <pk(x.50), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    282. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^x.53
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^x.53>, x.50)
+         skC   = (x.57*inv((x.53*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.52^(x.57*inv(x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    283. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^inv(x.53)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^inv(x.53)>, x.50)
+         skC   = (x.57*inv(x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.52^(x.57*inv((x.53*x.58)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    284. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^inv((x.53*x.54))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^inv((x.53*x.54))>, x.50)
+         skC   = (x.53*x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.52^(x.58*inv(x.54))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    285. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^inv((x.53*x.54))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^inv((x.53*x.54))>, x.50)
+         skC   = (x.53*inv(x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.52^inv((x.54*x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    286. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^(x.53*x.54)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^(x.53*x.54)>, x.50)
+         skC   = inv((x.53*x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.52^(x.54*inv(x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    287. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^(x.53*x.54)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^(x.53*x.54)>, x.50)
+         skC   = (x.58*inv(x.53))
+         z     = cert_id(certC.32)
+         z.1   = x.52^(x.54*x.58)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    288. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^(x.53*x.54*inv((x.55*x.56)))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^(x.53*x.54*inv((x.55*x.56)))>, x.50)
+         skC   = (x.56*inv(x.54))
+         z     = cert_id(certC.32)
+         z.1   = x.52^(x.53*inv(x.55))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    289. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^(x.53*inv(x.54))>, x.50)
+         skC   = inv(x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.52^(x.53*inv((x.54*x.58)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    290. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^(x.53*inv(x.54))>, x.50)
+         skC   = inv((x.53*x.58))
+         z     = cert_id(certC.32)
+         z.1   = x.52^inv((x.54*x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    291. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^(x.53*inv(x.54))>, x.50)
+         skC   = (x.54*x.58)
+         z     = cert_id(certC.32)
+         z.1   = x.52^(x.53*x.58)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    292. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^(x.53*inv(x.54))>, x.50)
+         skC   = (x.54*x.58*inv(x.53))
+         z     = cert_id(certC.32)
+         z.1   = x.52^x.58
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    293. IDc   = IDc.31
+         certC = certC.32
+         certT = cert(pk(x.50), sign(<pk(x.50), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.52^(x.53*inv(x.54))>, x.50)
+         skC   = (x.54*inv((x.53*x.58)))
+         z     = cert_id(certC.32)
+         z.1   = x.52^inv(x.58)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.32),
+                        <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    294. IDc   = IDc.31
+         certC = cert(x.48, x.49, z.42)
+         certT = certT.33
+         pkTe  = x.52^x.53
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv((x.53*x.58))
+         z     = z.42
+         z.1   = x.52^inv(x.58)
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.48, z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.52^x.53>, cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    295. IDc   = IDc.31
+         certC = cert(x.48, x.49, z.42)
+         certT = certT.33
+         pkTe  = x.52^x.53
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.58*inv(x.53))
+         z     = z.42
+         z.1   = x.52^x.58
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.48, z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.52^x.53>, cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    296. IDc   = IDc.31
+         certC = cert(x.48, x.49, z.42)
+         certT = certT.33
+         pkTe  = x.52^inv(x.53)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv(x.58)
+         z     = z.42
+         z.1   = x.52^inv((x.53*x.58))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.48, z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.52^inv(x.53)>, cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    297. IDc   = IDc.31
+         certC = cert(x.48, x.49, z.42)
+         certT = certT.33
+         pkTe  = x.52^inv(x.53)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*x.58)
+         z     = z.42
+         z.1   = x.52^x.58
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.48, z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.52^inv(x.53)>, cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    298. IDc   = IDc.31
+         certC = cert(x.48, x.49, z.42)
+         certT = cert(x.51, x.52, z.47)
+         pkTe  = x.54^(x.55*x.56*inv((x.57*x.58)))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.58*inv(x.56))
+         z     = z.42
+         z.1   = x.54^(x.55*inv(x.57))
+         z.2   = verify(x.52, <x.51, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.48, z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.54^(x.55*x.56*inv((x.57*x.58)))>,
+                        x.51)
+         z.5   = z.47
+    
+    299. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^x.52
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.57*inv((x.52*x.58)))
+         z     = z.42
+         z.1   = x.51^(x.57*inv(x.58))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^x.52>, cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    300. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^inv(x.52)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.57*inv(x.58))
+         z     = z.42
+         z.1   = x.51^(x.57*inv((x.52*x.58)))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^inv(x.52)>, cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    301. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^inv((x.52*x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*x.58)
+         z     = z.42
+         z.1   = x.51^(x.58*inv(x.53))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^inv((x.52*x.53))>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    302. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^inv((x.52*x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.52*inv(x.58))
+         z     = z.42
+         z.1   = x.51^inv((x.53*x.58))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^inv((x.52*x.53))>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    303. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^(x.52*x.53)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv((x.52*x.58))
+         z     = z.42
+         z.1   = x.51^(x.53*inv(x.58))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*x.53)>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    304. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^(x.52*x.53)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.58*inv(x.52))
+         z     = z.42
+         z.1   = x.51^(x.53*x.58)
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*x.53)>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    305. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv(x.58)
+         z     = z.42
+         z.1   = x.51^(x.52*inv((x.53*x.58)))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    306. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv((x.52*x.58))
+         z     = z.42
+         z.1   = x.51^inv((x.53*x.58))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    307. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*x.58)
+         z     = z.42
+         z.1   = x.51^(x.52*x.58)
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    308. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*x.58*inv(x.52))
+         z     = z.42
+         z.1   = x.51^x.58
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    309. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.33
+         pkTe  = x.51^(x.52*inv(x.53))
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*inv((x.52*x.58)))
+         z     = z.42
+         z.1   = x.51^inv(x.58)
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.51^(x.52*inv(x.53))>,
+                        cert_pk(certT.33))
+         z.5   = cert_id(certT.33)
+    
+    310. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.50, sign(<x.50, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^x.53
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv((x.53*x.58))
+         z     = z.42
+         z.1   = x.52^inv(x.58)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.52^x.53>, x.50)
+         z.5   = z.47
+    
+    311. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.50, sign(<x.50, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^x.53
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.58*inv(x.53))
+         z     = z.42
+         z.1   = x.52^x.58
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.52^x.53>, x.50)
+         z.5   = z.47
+    
+    312. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.50, sign(<x.50, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^inv(x.53)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = inv(x.58)
+         z     = z.42
+         z.1   = x.52^inv((x.53*x.58))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.52^inv(x.53)>, x.50)
+         z.5   = z.47
+    
+    313. IDc   = IDc.31
+         certC = cert(x.48, sign(<x.48, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.50, sign(<x.50, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.52^inv(x.53)
+         r1    = r1.36
+         s1    = s1.38
+         skC   = (x.53*x.58)
+         z     = z.42
+         z.1   = x.52^x.58
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.31, r1.36, x.52^inv(x.53)>, x.50)
+         z.5   = z.47
+    
+    314. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), x.53, z.47)
+         pkTe  = z.43^(x.56*inv(x.57))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, z.43^(x.56*inv(x.57))>, x.52)
+         skC   = (x.57*inv(x.56))
+         z     = z.42
+         z.1   = z.43
+         z.2   = verify(x.53, <pk(x.52), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    315. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), x.53, z.47)
+         pkTe  = x.55^x.56
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.55^x.56>, x.52)
+         skC   = skC.39
+         z     = z.42
+         z.1   = x.55^(skC.39*x.56)
+         z.2   = verify(x.53, <pk(x.52), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    316. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), x.53, z.47)
+         pkTe  = x.55^inv((skC.39*x.56))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.55^inv((skC.39*x.56))>, x.52)
+         skC   = skC.39
+         z     = z.42
+         z.1   = x.55^inv(x.56)
+         z.2   = verify(x.53, <pk(x.52), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    317. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), x.53, z.47)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.55^(x.56*x.57)>, x.52)
+         skC   = inv(x.56)
+         z     = z.42
+         z.1   = x.55^x.57
+         z.2   = verify(x.53, <pk(x.52), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    318. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), x.53, z.47)
+         pkTe  = x.55^(x.56*inv(skC.39))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.55^(x.56*inv(skC.39))>, x.52)
+         skC   = skC.39
+         z     = z.42
+         z.1   = x.55^x.56
+         z.2   = verify(x.53, <pk(x.52), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    319. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.54^x.55
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^x.55>, x.52)
+         skC   = inv((x.55*x.59))
+         z     = z.42
+         z.1   = x.54^inv(x.59)
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    320. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.54^x.55
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^x.55>, x.52)
+         skC   = (x.59*inv(x.55))
+         z     = z.42
+         z.1   = x.54^x.59
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    321. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^inv(x.55)>, x.52)
+         skC   = inv(x.59)
+         z     = z.42
+         z.1   = x.54^inv((x.55*x.59))
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    322. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^inv(x.55)>, x.52)
+         skC   = (x.55*x.59)
+         z     = z.42
+         z.1   = x.54^x.59
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    323. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         skC   = (x.57*inv(x.56))
+         z     = z.42
+         z.1   = x.54^x.55
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    324. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.54^(x.55*inv((skC.39*x.56)))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^(x.55*inv((skC.39*x.56)))>, x.52)
+         skC   = skC.39
+         z     = z.42
+         z.1   = x.54^(x.55*inv(x.56))
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    325. IDc   = IDc.31
+         certC = cert(x.49, x.50, z.42)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^(x.55*inv((x.56*x.57)))>, x.52)
+         skC   = (x.57*inv(x.55))
+         z     = z.42
+         z.1   = x.54^inv(x.56)
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.42, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    326. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), x.52, z.47)
+         pkTe  = x.54^x.55
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^x.55>, x.51)
+         skC   = inv((x.55*x.59))
+         z     = z.42
+         z.1   = x.54^inv(x.59)
+         z.2   = verify(x.52, <pk(x.51), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    327. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), x.52, z.47)
+         pkTe  = x.54^x.55
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^x.55>, x.51)
+         skC   = (x.59*inv(x.55))
+         z     = z.42
+         z.1   = x.54^x.59
+         z.2   = verify(x.52, <pk(x.51), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    328. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), x.52, z.47)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^inv(x.55)>, x.51)
+         skC   = inv(x.59)
+         z     = z.42
+         z.1   = x.54^inv((x.55*x.59))
+         z.2   = verify(x.52, <pk(x.51), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    329. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), x.52, z.47)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^inv(x.55)>, x.51)
+         skC   = (x.55*x.59)
+         z     = z.42
+         z.1   = x.54^x.59
+         z.2   = verify(x.52, <pk(x.51), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    330. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), x.52, z.47)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^(x.55*x.56*inv(x.57))>, x.51)
+         skC   = (x.57*inv(x.56))
+         z     = z.42
+         z.1   = x.54^x.55
+         z.2   = verify(x.52, <pk(x.51), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    331. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), x.52, z.47)
+         pkTe  = x.54^(x.55*inv((skC.39*x.56)))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^(x.55*inv((skC.39*x.56)))>, x.51)
+         skC   = skC.39
+         z     = z.42
+         z.1   = x.54^(x.55*inv(x.56))
+         z.2   = verify(x.52, <pk(x.51), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    332. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), x.52, z.47)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.54^(x.55*inv((x.56*x.57)))>, x.51)
+         skC   = (x.57*inv(x.55))
+         z     = z.42
+         z.1   = x.54^inv(x.56)
+         z.2   = verify(x.52, <pk(x.51), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    333. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^x.54
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^x.54>, x.51)
+         skC   = (x.58*inv((x.54*x.59)))
+         z     = z.42
+         z.1   = x.53^(x.58*inv(x.59))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    334. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^inv(x.54)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^inv(x.54)>, x.51)
+         skC   = (x.58*inv(x.59))
+         z     = z.42
+         z.1   = x.53^(x.58*inv((x.54*x.59)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    335. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^inv((x.54*x.55))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^inv((x.54*x.55))>, x.51)
+         skC   = (x.54*x.59)
+         z     = z.42
+         z.1   = x.53^(x.59*inv(x.55))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    336. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^inv((x.54*x.55))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^inv((x.54*x.55))>, x.51)
+         skC   = (x.54*inv(x.59))
+         z     = z.42
+         z.1   = x.53^inv((x.55*x.59))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    337. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*x.55)>, x.51)
+         skC   = inv((x.54*x.59))
+         z     = z.42
+         z.1   = x.53^(x.55*inv(x.59))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    338. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*x.55)>, x.51)
+         skC   = (x.59*inv(x.54))
+         z     = z.42
+         z.1   = x.53^(x.55*x.59)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    339. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^(x.54*x.55*inv((x.56*x.57)))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*x.55*inv((x.56*x.57)))>, x.51)
+         skC   = (x.57*inv(x.55))
+         z     = z.42
+         z.1   = x.53^(x.54*inv(x.56))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    340. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*inv(x.55))>, x.51)
+         skC   = inv(x.59)
+         z     = z.42
+         z.1   = x.53^(x.54*inv((x.55*x.59)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    341. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*inv(x.55))>, x.51)
+         skC   = inv((x.54*x.59))
+         z     = z.42
+         z.1   = x.53^inv((x.55*x.59))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    342. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*inv(x.55))>, x.51)
+         skC   = (x.55*x.59)
+         z     = z.42
+         z.1   = x.53^(x.54*x.59)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    343. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*inv(x.55))>, x.51)
+         skC   = (x.55*x.59*inv(x.54))
+         z     = z.42
+         z.1   = x.53^x.59
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    344. IDc   = IDc.31
+         certC = cert(x.49, sign(<x.49, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.36
+         s1    = sign(<IDc.31, r1.36, x.53^(x.54*inv(x.55))>, x.51)
+         skC   = (x.55*inv((x.54*x.59)))
+         z     = z.42
+         z.1   = x.53^inv(x.59)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    345. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^inv((x.53*x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.53*x.59*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.59*inv((x.54*x.60)))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^inv((x.53*x.54))>, x.49)
+         z.5   = z.48
+    
+    346. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*x.54)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv((x.53*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.54*x.59*inv(x.60))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*x.54)>, x.49)
+         z.5   = z.48
+    
+    347. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv((x.54*x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.53*inv((x.55*x.60)))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*x.54*inv(x.55))>, x.49)
+         z.5   = z.48
+    
+    348. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*x.60*inv(x.53))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.54*x.60)
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*x.54*inv(x.55))>, x.49)
+         z.5   = z.48
+    
+    349. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*inv((x.53*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.54*inv(x.60))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*x.54*inv(x.55))>, x.49)
+         z.5   = z.48
+    
+    350. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.59*inv((x.53*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.59*inv(x.60))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv(x.54))>, x.49)
+         z.5   = z.48
+    
+    351. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.53*x.59*inv((x.54*x.60)))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv(x.54))>, x.49)
+         z.5   = z.48
+    
+    352. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv((x.53*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.59*inv((x.54*x.60)))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv(x.54))>, x.49)
+         z.5   = z.48
+    
+    353. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.60)
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.53*x.60*inv(x.55))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv((x.54*x.55)))>,
+                        x.49)
+         z.5   = z.48
+    
+    354. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.60*inv(x.53))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.60*inv(x.55))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv((x.54*x.55)))>,
+                        x.49)
+         z.5   = z.48
+    
+    355. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.52^(x.53*inv((x.55*x.60)))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv((x.54*x.55)))>,
+                        x.49)
+         z.5   = z.48
+    
+    356. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, x.50, z.48)
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*inv((x.53*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.52^inv((x.55*x.60))
+         z.2   = verify(x.50, <x.49, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv((x.54*x.55)))>,
+                        x.49)
+         z.5   = z.48
+    
+    357. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, sign(<x.49, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.51^(x.52*x.53*inv(x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.59*inv((x.52*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.51^(x.53*x.59*inv(x.60))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.51^(x.52*x.53*inv(x.54))>, x.49)
+         z.5   = z.48
+    
+    358. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, sign(<x.49, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.51^(x.52*x.53*inv(x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv((x.52*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.51^(x.53*x.59*inv((x.54*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.51^(x.52*x.53*inv(x.54))>, x.49)
+         z.5   = z.48
+    
+    359. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, sign(<x.49, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.51^(x.52*x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.60*inv(x.52))
+         z     = cert_id(certC.33)
+         z.1   = x.51^(x.53*x.60*inv(x.55))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.51^(x.52*x.53*inv((x.54*x.55)))>,
+                        x.49)
+         z.5   = z.48
+    
+    360. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, sign(<x.49, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.51^(x.52*x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*inv((x.52*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.51^(x.53*inv((x.55*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.51^(x.52*x.53*inv((x.54*x.55)))>,
+                        x.49)
+         z.5   = z.48
+    
+    361. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, sign(<x.49, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.51^(x.52*inv((x.53*x.54)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.53*x.59*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.51^(x.52*x.59*inv((x.54*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.51^(x.52*inv((x.53*x.54)))>,
+                        x.49)
+         z.5   = z.48
+    
+    362. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(x.49, sign(<x.49, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.51^(x.52*inv((x.53*x.54)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.53*x.59*inv((x.52*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.51^(x.59*inv((x.54*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.51^(x.52*inv((x.53*x.54)))>,
+                        x.49)
+         z.5   = z.48
+    
+    363. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^x.55
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^x.55>, x.51)
+         skC   = (x.59*inv((x.55*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.54^(x.59*inv(x.60))
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    364. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^inv(x.55)>, x.51)
+         skC   = (x.59*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.54^(x.59*inv((x.55*x.60)))
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    365. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^inv((x.55*x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^inv((x.55*x.56))>, x.51)
+         skC   = (x.55*x.60)
+         z     = cert_id(certC.33)
+         z.1   = x.54^(x.60*inv(x.56))
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    366. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^inv((x.55*x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^inv((x.55*x.56))>, x.51)
+         skC   = (x.55*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.54^inv((x.56*x.60))
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    367. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^(x.55*x.56)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*x.56)>, x.51)
+         skC   = inv((x.55*x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.54^(x.56*inv(x.60))
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    368. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^(x.55*x.56)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*x.56)>, x.51)
+         skC   = (x.60*inv(x.55))
+         z     = cert_id(certC.33)
+         z.1   = x.54^(x.56*x.60)
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    369. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^(x.55*x.56*inv((x.57*x.58)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*x.56*inv((x.57*x.58)))>, x.51)
+         skC   = (x.58*inv(x.56))
+         z     = cert_id(certC.33)
+         z.1   = x.54^(x.55*inv(x.57))
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    370. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv(x.56))>, x.51)
+         skC   = inv(x.60)
+         z     = cert_id(certC.33)
+         z.1   = x.54^(x.55*inv((x.56*x.60)))
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    371. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv(x.56))>, x.51)
+         skC   = inv((x.55*x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.54^inv((x.56*x.60))
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    372. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv(x.56))>, x.51)
+         skC   = (x.56*x.60)
+         z     = cert_id(certC.33)
+         z.1   = x.54^(x.55*x.60)
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    373. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv(x.56))>, x.51)
+         skC   = (x.56*x.60*inv(x.55))
+         z     = cert_id(certC.33)
+         z.1   = x.54^x.60
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    374. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), x.52, z.48)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv(x.56))>, x.51)
+         skC   = (x.56*inv((x.55*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.54^inv(x.60)
+         z.2   = verify(x.52, <pk(x.51), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    375. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^inv((x.54*x.55))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^inv((x.54*x.55))>, x.51)
+         skC   = (x.54*x.59*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.59*inv((x.55*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    376. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*x.55)>, x.51)
+         skC   = (x.59*inv((x.54*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.55*x.59*inv(x.60))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    377. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*x.55*inv(x.56))>, x.51)
+         skC   = inv((x.55*x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.54*inv((x.56*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    378. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*x.55*inv(x.56))>, x.51)
+         skC   = (x.56*x.60*inv(x.54))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.55*x.60)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    379. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*x.55*inv(x.56))>, x.51)
+         skC   = (x.56*inv((x.54*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.55*inv(x.60))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    380. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*inv(x.55))>, x.51)
+         skC   = (x.55*x.59*inv((x.54*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.59*inv(x.60))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    381. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*inv(x.55))>, x.51)
+         skC   = (x.59*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.54*x.59*inv((x.55*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    382. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*inv(x.55))>, x.51)
+         skC   = (x.59*inv((x.54*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.59*inv((x.55*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    383. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*inv((x.55*x.56)))>, x.51)
+         skC   = (x.55*x.60)
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.54*x.60*inv(x.56))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    384. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*inv((x.55*x.56)))>, x.51)
+         skC   = (x.55*x.60*inv(x.54))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.60*inv(x.56))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    385. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*inv((x.55*x.56)))>, x.51)
+         skC   = (x.55*inv(x.60))
+         z     = cert_id(certC.33)
+         z.1   = x.53^(x.54*inv((x.56*x.60)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    386. IDc   = IDc.32
+         certC = certC.33
+         certT = cert(pk(x.51), sign(<pk(x.51), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.53^(x.54*inv((x.55*x.56)))>, x.51)
+         skC   = (x.55*inv((x.54*x.60)))
+         z     = cert_id(certC.33)
+         z.1   = x.53^inv((x.56*x.60))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.33),
+                        <cert_pk(certC.33), cert_id(certC.33), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    387. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^x.54
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv((x.54*x.60)))
+         z     = z.43
+         z.1   = x.53^(x.59*inv(x.60))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^x.54>, cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    388. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^inv(x.54)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv(x.60))
+         z     = z.43
+         z.1   = x.53^(x.59*inv((x.54*x.60)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^inv(x.54)>, cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    389. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^inv((x.54*x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.60)
+         z     = z.43
+         z.1   = x.53^(x.60*inv(x.55))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^inv((x.54*x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    390. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^inv((x.54*x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*inv(x.60))
+         z     = z.43
+         z.1   = x.53^inv((x.55*x.60))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^inv((x.54*x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    391. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv((x.54*x.60))
+         z     = z.43
+         z.1   = x.53^(x.55*inv(x.60))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*x.55)>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    392. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.60*inv(x.54))
+         z     = z.43
+         z.1   = x.53^(x.55*x.60)
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*x.55)>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    393. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv(x.60)
+         z     = z.43
+         z.1   = x.53^(x.54*inv((x.55*x.60)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    394. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv((x.54*x.60))
+         z     = z.43
+         z.1   = x.53^inv((x.55*x.60))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    395. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*x.60)
+         z     = z.43
+         z.1   = x.53^(x.54*x.60)
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    396. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*x.60*inv(x.54))
+         z     = z.43
+         z.1   = x.53^x.60
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    397. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = certT.34
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*inv((x.54*x.60)))
+         z     = z.43
+         z.1   = x.53^inv(x.60)
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    398. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = cert(x.52, sign(<x.52, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^x.55
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv((x.55*x.60))
+         z     = z.43
+         z.1   = x.54^inv(x.60)
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.54^x.55>, x.52)
+         z.5   = z.48
+    
+    399. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = cert(x.52, sign(<x.52, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^x.55
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.60*inv(x.55))
+         z     = z.43
+         z.1   = x.54^x.60
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.54^x.55>, x.52)
+         z.5   = z.48
+    
+    400. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = cert(x.52, sign(<x.52, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv(x.60)
+         z     = z.43
+         z.1   = x.54^inv((x.55*x.60))
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.54^inv(x.55)>, x.52)
+         z.5   = z.48
+    
+    401. IDc   = IDc.32
+         certC = cert(x.49, x.50, z.43)
+         certT = cert(x.52, sign(<x.52, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*x.60)
+         z     = z.43
+         z.1   = x.54^x.60
+         z.2   = true
+         z.3   = verify(x.50, <x.49, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.54^inv(x.55)>, x.52)
+         z.5   = z.48
+    
+    402. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^inv((x.53*x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.53*x.59*inv(x.60))
+         z     = z.43
+         z.1   = x.52^(x.59*inv((x.54*x.60)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^inv((x.53*x.54))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    403. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*x.54)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv((x.53*x.60)))
+         z     = z.43
+         z.1   = x.52^(x.54*x.59*inv(x.60))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*x.54)>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    404. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv((x.54*x.60))
+         z     = z.43
+         z.1   = x.52^(x.53*inv((x.55*x.60)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*x.54*inv(x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    405. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*x.60*inv(x.53))
+         z     = z.43
+         z.1   = x.52^(x.54*x.60)
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*x.54*inv(x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    406. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*inv((x.53*x.60)))
+         z     = z.43
+         z.1   = x.52^(x.54*inv(x.60))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*x.54*inv(x.55))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    407. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.59*inv((x.53*x.60)))
+         z     = z.43
+         z.1   = x.52^(x.59*inv(x.60))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv(x.54))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    408. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv(x.60))
+         z     = z.43
+         z.1   = x.52^(x.53*x.59*inv((x.54*x.60)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv(x.54))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    409. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*inv(x.54))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv((x.53*x.60)))
+         z     = z.43
+         z.1   = x.52^(x.59*inv((x.54*x.60)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv(x.54))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    410. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.60)
+         z     = z.43
+         z.1   = x.52^(x.53*x.60*inv(x.55))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv((x.54*x.55)))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    411. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.60*inv(x.53))
+         z     = z.43
+         z.1   = x.52^(x.60*inv(x.55))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv((x.54*x.55)))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    412. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*inv(x.60))
+         z     = z.43
+         z.1   = x.52^(x.53*inv((x.55*x.60)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv((x.54*x.55)))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    413. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.34
+         pkTe  = x.52^(x.53*inv((x.54*x.55)))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*inv((x.53*x.60)))
+         z     = z.43
+         z.1   = x.52^inv((x.55*x.60))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.52^(x.53*inv((x.54*x.55)))>,
+                        cert_pk(certT.34))
+         z.5   = cert_id(certT.34)
+    
+    414. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, x.52, z.48)
+         pkTe  = x.54^x.55
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv((x.55*x.60))
+         z     = z.43
+         z.1   = x.54^inv(x.60)
+         z.2   = verify(x.52, <x.51, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.54^x.55>, x.51)
+         z.5   = z.48
+    
+    415. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, x.52, z.48)
+         pkTe  = x.54^x.55
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.60*inv(x.55))
+         z     = z.43
+         z.1   = x.54^x.60
+         z.2   = verify(x.52, <x.51, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.54^x.55>, x.51)
+         z.5   = z.48
+    
+    416. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, x.52, z.48)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv(x.60)
+         z     = z.43
+         z.1   = x.54^inv((x.55*x.60))
+         z.2   = verify(x.52, <x.51, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.54^inv(x.55)>, x.51)
+         z.5   = z.48
+    
+    417. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, x.52, z.48)
+         pkTe  = x.54^inv(x.55)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*x.60)
+         z     = z.43
+         z.1   = x.54^x.60
+         z.2   = verify(x.52, <x.51, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.54^inv(x.55)>, x.51)
+         z.5   = z.48
+    
+    418. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^x.54
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv((x.54*x.60)))
+         z     = z.43
+         z.1   = x.53^(x.59*inv(x.60))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^x.54>, x.51)
+         z.5   = z.48
+    
+    419. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^inv(x.54)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.59*inv(x.60))
+         z     = z.43
+         z.1   = x.53^(x.59*inv((x.54*x.60)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^inv(x.54)>, x.51)
+         z.5   = z.48
+    
+    420. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^inv((x.54*x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*x.60)
+         z     = z.43
+         z.1   = x.53^(x.60*inv(x.55))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^inv((x.54*x.55))>, x.51)
+         z.5   = z.48
+    
+    421. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^inv((x.54*x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.54*inv(x.60))
+         z     = z.43
+         z.1   = x.53^inv((x.55*x.60))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^inv((x.54*x.55))>, x.51)
+         z.5   = z.48
+    
+    422. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv((x.54*x.60))
+         z     = z.43
+         z.1   = x.53^(x.55*inv(x.60))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*x.55)>, x.51)
+         z.5   = z.48
+    
+    423. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*x.55)
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.60*inv(x.54))
+         z     = z.43
+         z.1   = x.53^(x.55*x.60)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*x.55)>, x.51)
+         z.5   = z.48
+    
+    424. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv(x.60)
+         z     = z.43
+         z.1   = x.53^(x.54*inv((x.55*x.60)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>, x.51)
+         z.5   = z.48
+    
+    425. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = inv((x.54*x.60))
+         z     = z.43
+         z.1   = x.53^inv((x.55*x.60))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>, x.51)
+         z.5   = z.48
+    
+    426. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*x.60)
+         z     = z.43
+         z.1   = x.53^(x.54*x.60)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>, x.51)
+         z.5   = z.48
+    
+    427. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*x.60*inv(x.54))
+         z     = z.43
+         z.1   = x.53^x.60
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>, x.51)
+         z.5   = z.48
+    
+    428. IDc   = IDc.32
+         certC = cert(x.49, sign(<x.49, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.51, sign(<x.51, z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.53^(x.54*inv(x.55))
+         r1    = r1.37
+         s1    = s1.39
+         skC   = (x.55*inv((x.54*x.60)))
+         z     = z.43
+         z.1   = x.53^inv(x.60)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.32, r1.37, x.53^(x.54*inv(x.55))>, x.51)
+         z.5   = z.48
+    
+    429. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), x.54, z.48)
+         pkTe  = x.56^x.57
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.56^x.57>, x.53)
+         skC   = inv((x.57*x.61))
+         z     = z.43
+         z.1   = x.56^inv(x.61)
+         z.2   = verify(x.54, <pk(x.53), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    430. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), x.54, z.48)
+         pkTe  = x.56^x.57
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.56^x.57>, x.53)
+         skC   = (x.61*inv(x.57))
+         z     = z.43
+         z.1   = x.56^x.61
+         z.2   = verify(x.54, <pk(x.53), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    431. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), x.54, z.48)
+         pkTe  = x.56^inv(x.57)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.56^inv(x.57)>, x.53)
+         skC   = inv(x.61)
+         z     = z.43
+         z.1   = x.56^inv((x.57*x.61))
+         z.2   = verify(x.54, <pk(x.53), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    432. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), x.54, z.48)
+         pkTe  = x.56^inv(x.57)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.56^inv(x.57)>, x.53)
+         skC   = (x.57*x.61)
+         z     = z.43
+         z.1   = x.56^x.61
+         z.2   = verify(x.54, <pk(x.53), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    433. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), x.54, z.48)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         skC   = (x.59*inv(x.58))
+         z     = z.43
+         z.1   = x.56^x.57
+         z.2   = verify(x.54, <pk(x.53), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    434. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), x.54, z.48)
+         pkTe  = x.56^(x.57*inv((skC.40*x.58)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.56^(x.57*inv((skC.40*x.58)))>, x.53)
+         skC   = skC.40
+         z     = z.43
+         z.1   = x.56^(x.57*inv(x.58))
+         z.2   = verify(x.54, <pk(x.53), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    435. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), x.54, z.48)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.56^(x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.59*inv(x.57))
+         z     = z.43
+         z.1   = x.56^inv(x.58)
+         z.2   = verify(x.54, <pk(x.53), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    436. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^x.56
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^x.56>, x.53)
+         skC   = (x.60*inv((x.56*x.61)))
+         z     = z.43
+         z.1   = x.55^(x.60*inv(x.61))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    437. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^inv(x.56)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^inv(x.56)>, x.53)
+         skC   = (x.60*inv(x.61))
+         z     = z.43
+         z.1   = x.55^(x.60*inv((x.56*x.61)))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    438. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^inv((x.56*x.57))>, x.53)
+         skC   = (x.56*x.61)
+         z     = z.43
+         z.1   = x.55^(x.61*inv(x.57))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    439. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^inv((x.56*x.57))>, x.53)
+         skC   = (x.56*inv(x.61))
+         z     = z.43
+         z.1   = x.55^inv((x.57*x.61))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    440. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*x.57)>, x.53)
+         skC   = inv((x.56*x.61))
+         z     = z.43
+         z.1   = x.55^(x.57*inv(x.61))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    441. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*x.57)>, x.53)
+         skC   = (x.61*inv(x.56))
+         z     = z.43
+         z.1   = x.55^(x.57*x.61)
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    442. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.59*inv(x.57))
+         z     = z.43
+         z.1   = x.55^(x.56*inv(x.58))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    443. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.53)
+         skC   = inv(x.61)
+         z     = z.43
+         z.1   = x.55^(x.56*inv((x.57*x.61)))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    444. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.53)
+         skC   = inv((x.56*x.61))
+         z     = z.43
+         z.1   = x.55^inv((x.57*x.61))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    445. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.53)
+         skC   = (x.57*x.61)
+         z     = z.43
+         z.1   = x.55^(x.56*x.61)
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    446. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.53)
+         skC   = (x.57*x.61*inv(x.56))
+         z     = z.43
+         z.1   = x.55^x.61
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    447. IDc   = IDc.32
+         certC = cert(x.50, x.51, z.43)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.53)
+         skC   = (x.57*inv((x.56*x.61)))
+         z     = z.43
+         z.1   = x.55^inv(x.61)
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.43, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    448. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^x.56
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^x.56>, x.52)
+         skC   = (x.60*inv((x.56*x.61)))
+         z     = z.43
+         z.1   = x.55^(x.60*inv(x.61))
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    449. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^inv(x.56)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^inv(x.56)>, x.52)
+         skC   = (x.60*inv(x.61))
+         z     = z.43
+         z.1   = x.55^(x.60*inv((x.56*x.61)))
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    450. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^inv((x.56*x.57))>, x.52)
+         skC   = (x.56*x.61)
+         z     = z.43
+         z.1   = x.55^(x.61*inv(x.57))
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    451. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^inv((x.56*x.57))>, x.52)
+         skC   = (x.56*inv(x.61))
+         z     = z.43
+         z.1   = x.55^inv((x.57*x.61))
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    452. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*x.57)>, x.52)
+         skC   = inv((x.56*x.61))
+         z     = z.43
+         z.1   = x.55^(x.57*inv(x.61))
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    453. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*x.57)>, x.52)
+         skC   = (x.61*inv(x.56))
+         z     = z.43
+         z.1   = x.55^(x.57*x.61)
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    454. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*x.57*inv((x.58*x.59)))>, x.52)
+         skC   = (x.59*inv(x.57))
+         z     = z.43
+         z.1   = x.55^(x.56*inv(x.58))
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    455. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.52)
+         skC   = inv(x.61)
+         z     = z.43
+         z.1   = x.55^(x.56*inv((x.57*x.61)))
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    456. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.52)
+         skC   = inv((x.56*x.61))
+         z     = z.43
+         z.1   = x.55^inv((x.57*x.61))
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    457. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.52)
+         skC   = (x.57*x.61)
+         z     = z.43
+         z.1   = x.55^(x.56*x.61)
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    458. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.52)
+         skC   = (x.57*x.61*inv(x.56))
+         z     = z.43
+         z.1   = x.55^x.61
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    459. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), x.53, z.48)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.55^(x.56*inv(x.57))>, x.52)
+         skC   = (x.57*inv((x.56*x.61)))
+         z     = z.43
+         z.1   = x.55^inv(x.61)
+         z.2   = verify(x.53, <pk(x.52), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    460. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^inv((x.55*x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^inv((x.55*x.56))>, x.52)
+         skC   = (x.55*x.60*inv(x.61))
+         z     = z.43
+         z.1   = x.54^(x.60*inv((x.56*x.61)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    461. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*x.56)
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*x.56)>, x.52)
+         skC   = (x.60*inv((x.55*x.61)))
+         z     = z.43
+         z.1   = x.54^(x.56*x.60*inv(x.61))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    462. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         skC   = inv((x.56*x.61))
+         z     = z.43
+         z.1   = x.54^(x.55*inv((x.57*x.61)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    463. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         skC   = (x.57*x.61*inv(x.55))
+         z     = z.43
+         z.1   = x.54^(x.56*x.61)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    464. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         skC   = (x.57*inv((x.55*x.61)))
+         z     = z.43
+         z.1   = x.54^(x.56*inv(x.61))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    465. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv(x.56))>, x.52)
+         skC   = (x.56*x.60*inv((x.55*x.61)))
+         z     = z.43
+         z.1   = x.54^(x.60*inv(x.61))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    466. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv(x.56))>, x.52)
+         skC   = (x.60*inv(x.61))
+         z     = z.43
+         z.1   = x.54^(x.55*x.60*inv((x.56*x.61)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    467. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv(x.56))>, x.52)
+         skC   = (x.60*inv((x.55*x.61)))
+         z     = z.43
+         z.1   = x.54^(x.60*inv((x.56*x.61)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    468. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv((x.56*x.57)))>, x.52)
+         skC   = (x.56*x.61)
+         z     = z.43
+         z.1   = x.54^(x.55*x.61*inv(x.57))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    469. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv((x.56*x.57)))>, x.52)
+         skC   = (x.56*x.61*inv(x.55))
+         z     = z.43
+         z.1   = x.54^(x.61*inv(x.57))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    470. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv((x.56*x.57)))>, x.52)
+         skC   = (x.56*inv(x.61))
+         z     = z.43
+         z.1   = x.54^(x.55*inv((x.57*x.61)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    471. IDc   = IDc.32
+         certC = cert(x.50, sign(<x.50, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.48, 'terminal'>, ca_sk), z.48)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.37
+         s1    = sign(<IDc.32, r1.37, x.54^(x.55*inv((x.56*x.57)))>, x.52)
+         skC   = (x.56*inv((x.55*x.61)))
+         z     = z.43
+         z.1   = x.54^inv((x.57*x.61))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    472. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(x.50, x.51, z.49)
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.61*inv((x.54*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.53^(x.55*x.61*inv(x.62))
+         z.2   = verify(x.51, <x.50, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*x.55*inv(x.56))>, x.50)
+         z.5   = z.49
+    
+    473. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(x.50, x.51, z.49)
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv((x.54*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.53^(x.55*x.61*inv((x.56*x.62)))
+         z.2   = verify(x.51, <x.50, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*x.55*inv(x.56))>, x.50)
+         z.5   = z.49
+    
+    474. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(x.50, x.51, z.49)
+         pkTe  = x.53^(x.54*x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.62*inv(x.54))
+         z     = cert_id(certC.34)
+         z.1   = x.53^(x.55*x.62*inv(x.57))
+         z.2   = verify(x.51, <x.50, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*x.55*inv((x.56*x.57)))>,
+                        x.50)
+         z.5   = z.49
+    
+    475. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(x.50, x.51, z.49)
+         pkTe  = x.53^(x.54*x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*inv((x.54*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.53^(x.55*inv((x.57*x.62)))
+         z.2   = verify(x.51, <x.50, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*x.55*inv((x.56*x.57)))>,
+                        x.50)
+         z.5   = z.49
+    
+    476. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(x.50, x.51, z.49)
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.55*x.61*inv(x.62))
+         z     = cert_id(certC.34)
+         z.1   = x.53^(x.54*x.61*inv((x.56*x.62)))
+         z.2   = verify(x.51, <x.50, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*inv((x.55*x.56)))>,
+                        x.50)
+         z.5   = z.49
+    
+    477. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(x.50, x.51, z.49)
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.55*x.61*inv((x.54*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.53^(x.61*inv((x.56*x.62)))
+         z.2   = verify(x.51, <x.50, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*inv((x.55*x.56)))>,
+                        x.50)
+         z.5   = z.49
+    
+    478. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(x.50, sign(<x.50, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.52^(x.53*x.54*inv((x.55*x.56)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.55*x.61*inv((x.53*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.52^(x.54*x.61*inv((x.56*x.62)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.52^(x.53*x.54*inv((x.55*x.56)))>,
+                        x.50)
+         z.5   = z.49
+    
+    479. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^inv((x.56*x.57))>, x.52)
+         skC   = (x.56*x.61*inv(x.62))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.61*inv((x.57*x.62)))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    480. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*x.57)>, x.52)
+         skC   = (x.61*inv((x.56*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.57*x.61*inv(x.62))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    481. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*x.57*inv(x.58))>, x.52)
+         skC   = inv((x.57*x.62))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.56*inv((x.58*x.62)))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    482. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*x.57*inv(x.58))>, x.52)
+         skC   = (x.58*x.62*inv(x.56))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.57*x.62)
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    483. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*x.57*inv(x.58))>, x.52)
+         skC   = (x.58*inv((x.56*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.57*inv(x.62))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    484. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.52)
+         skC   = (x.57*x.61*inv((x.56*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.61*inv(x.62))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    485. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.52)
+         skC   = (x.61*inv(x.62))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.56*x.61*inv((x.57*x.62)))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    486. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.52)
+         skC   = (x.61*inv((x.56*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.61*inv((x.57*x.62)))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    487. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv((x.57*x.58)))>, x.52)
+         skC   = (x.57*x.62)
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.56*x.62*inv(x.58))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    488. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv((x.57*x.58)))>, x.52)
+         skC   = (x.57*x.62*inv(x.56))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.62*inv(x.58))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    489. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv((x.57*x.58)))>, x.52)
+         skC   = (x.57*inv(x.62))
+         z     = cert_id(certC.34)
+         z.1   = x.55^(x.56*inv((x.58*x.62)))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    490. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), x.53, z.49)
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv((x.57*x.58)))>, x.52)
+         skC   = (x.57*inv((x.56*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.55^inv((x.58*x.62))
+         z.2   = verify(x.53, <pk(x.52), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    491. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), sign(<pk(x.52), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         skC   = (x.57*x.61*inv((x.55*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.54^(x.56*x.61*inv(x.62))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    492. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), sign(<pk(x.52), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         skC   = (x.61*inv((x.55*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.54^(x.56*x.61*inv((x.57*x.62)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    493. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), sign(<pk(x.52), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*x.56*inv((x.57*x.58)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.54^(x.55*x.56*inv((x.57*x.58)))>, x.52)
+         skC   = (x.57*x.62*inv(x.55))
+         z     = cert_id(certC.34)
+         z.1   = x.54^(x.56*x.62*inv(x.58))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    494. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), sign(<pk(x.52), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*x.56*inv((x.57*x.58)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.54^(x.55*x.56*inv((x.57*x.58)))>, x.52)
+         skC   = (x.57*inv((x.55*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.54^(x.56*inv((x.58*x.62)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    495. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), sign(<pk(x.52), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>, x.52)
+         skC   = (x.56*x.61*inv(x.62))
+         z     = cert_id(certC.34)
+         z.1   = x.54^(x.55*x.61*inv((x.57*x.62)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    496. IDc   = IDc.33
+         certC = certC.34
+         certT = cert(pk(x.52), sign(<pk(x.52), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>, x.52)
+         skC   = (x.56*x.61*inv((x.55*x.62)))
+         z     = cert_id(certC.34)
+         z.1   = x.54^(x.61*inv((x.57*x.62)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.34),
+                        <cert_pk(certC.34), cert_id(certC.34), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    497. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^inv((x.55*x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.55*x.61*inv(x.62))
+         z     = z.44
+         z.1   = x.54^(x.61*inv((x.56*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^inv((x.55*x.56))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    498. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*x.56)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^(x.56*x.61*inv(x.62))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*x.56)>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    499. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv((x.56*x.62))
+         z     = z.44
+         z.1   = x.54^(x.55*inv((x.57*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*x.56*inv(x.57))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    500. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*x.62*inv(x.55))
+         z     = z.44
+         z.1   = x.54^(x.56*x.62)
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*x.56*inv(x.57))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    501. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^(x.56*inv(x.62))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*x.56*inv(x.57))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    502. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.61*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^(x.61*inv(x.62))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv(x.56))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    503. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv(x.62))
+         z     = z.44
+         z.1   = x.54^(x.55*x.61*inv((x.56*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv(x.56))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    504. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^(x.61*inv((x.56*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv(x.56))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    505. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.62)
+         z     = z.44
+         z.1   = x.54^(x.55*x.62*inv(x.57))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    506. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.62*inv(x.55))
+         z     = z.44
+         z.1   = x.54^(x.62*inv(x.57))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    507. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*inv(x.62))
+         z     = z.44
+         z.1   = x.54^(x.55*inv((x.57*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    508. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = certT.35
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^inv((x.57*x.62))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    509. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, x.54, z.49)
+         pkTe  = x.56^x.57
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv((x.57*x.62))
+         z     = z.44
+         z.1   = x.56^inv(x.62)
+         z.2   = verify(x.54, <x.53, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.56^x.57>, x.53)
+         z.5   = z.49
+    
+    510. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, x.54, z.49)
+         pkTe  = x.56^x.57
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.62*inv(x.57))
+         z     = z.44
+         z.1   = x.56^x.62
+         z.2   = verify(x.54, <x.53, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.56^x.57>, x.53)
+         z.5   = z.49
+    
+    511. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, x.54, z.49)
+         pkTe  = x.56^inv(x.57)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv(x.62)
+         z     = z.44
+         z.1   = x.56^inv((x.57*x.62))
+         z.2   = verify(x.54, <x.53, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.56^inv(x.57)>, x.53)
+         z.5   = z.49
+    
+    512. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, x.54, z.49)
+         pkTe  = x.56^inv(x.57)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*x.62)
+         z     = z.44
+         z.1   = x.56^x.62
+         z.2   = verify(x.54, <x.53, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.56^inv(x.57)>, x.53)
+         z.5   = z.49
+    
+    513. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^x.56
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv((x.56*x.62)))
+         z     = z.44
+         z.1   = x.55^(x.61*inv(x.62))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^x.56>, x.53)
+         z.5   = z.49
+    
+    514. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^inv(x.56)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv(x.62))
+         z     = z.44
+         z.1   = x.55^(x.61*inv((x.56*x.62)))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^inv(x.56)>, x.53)
+         z.5   = z.49
+    
+    515. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.62)
+         z     = z.44
+         z.1   = x.55^(x.62*inv(x.57))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^inv((x.56*x.57))>, x.53)
+         z.5   = z.49
+    
+    516. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*inv(x.62))
+         z     = z.44
+         z.1   = x.55^inv((x.57*x.62))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^inv((x.56*x.57))>, x.53)
+         z.5   = z.49
+    
+    517. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv((x.56*x.62))
+         z     = z.44
+         z.1   = x.55^(x.57*inv(x.62))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*x.57)>, x.53)
+         z.5   = z.49
+    
+    518. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.62*inv(x.56))
+         z     = z.44
+         z.1   = x.55^(x.57*x.62)
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*x.57)>, x.53)
+         z.5   = z.49
+    
+    519. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv(x.62)
+         z     = z.44
+         z.1   = x.55^(x.56*inv((x.57*x.62)))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.53)
+         z.5   = z.49
+    
+    520. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv((x.56*x.62))
+         z     = z.44
+         z.1   = x.55^inv((x.57*x.62))
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.53)
+         z.5   = z.49
+    
+    521. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*x.62)
+         z     = z.44
+         z.1   = x.55^(x.56*x.62)
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.53)
+         z.5   = z.49
+    
+    522. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*x.62*inv(x.56))
+         z     = z.44
+         z.1   = x.55^x.62
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.53)
+         z.5   = z.49
+    
+    523. IDc   = IDc.33
+         certC = cert(x.50, x.51, z.44)
+         certT = cert(x.53, sign(<x.53, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*inv((x.56*x.62)))
+         z     = z.44
+         z.1   = x.55^inv(x.62)
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.53)
+         z.5   = z.49
+    
+    524. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = certT.35
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.61*inv((x.54*x.62)))
+         z     = z.44
+         z.1   = x.53^(x.55*x.61*inv(x.62))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*x.55*inv(x.56))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    525. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = certT.35
+         pkTe  = x.53^(x.54*x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv((x.54*x.62)))
+         z     = z.44
+         z.1   = x.53^(x.55*x.61*inv((x.56*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*x.55*inv(x.56))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    526. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = certT.35
+         pkTe  = x.53^(x.54*x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.62*inv(x.54))
+         z     = z.44
+         z.1   = x.53^(x.55*x.62*inv(x.57))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*x.55*inv((x.56*x.57)))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    527. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = certT.35
+         pkTe  = x.53^(x.54*x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*inv((x.54*x.62)))
+         z     = z.44
+         z.1   = x.53^(x.55*inv((x.57*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*x.55*inv((x.56*x.57)))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    528. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = certT.35
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.55*x.61*inv(x.62))
+         z     = z.44
+         z.1   = x.53^(x.54*x.61*inv((x.56*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*inv((x.55*x.56)))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    529. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = certT.35
+         pkTe  = x.53^(x.54*inv((x.55*x.56)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.55*x.61*inv((x.54*x.62)))
+         z     = z.44
+         z.1   = x.53^(x.61*inv((x.56*x.62)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.53^(x.54*inv((x.55*x.56)))>,
+                        cert_pk(certT.35))
+         z.5   = cert_id(certT.35)
+    
+    530. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^x.56
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv((x.56*x.62)))
+         z     = z.44
+         z.1   = x.55^(x.61*inv(x.62))
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^x.56>, x.52)
+         z.5   = z.49
+    
+    531. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^inv(x.56)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv(x.62))
+         z     = z.44
+         z.1   = x.55^(x.61*inv((x.56*x.62)))
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^inv(x.56)>, x.52)
+         z.5   = z.49
+    
+    532. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.62)
+         z     = z.44
+         z.1   = x.55^(x.62*inv(x.57))
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^inv((x.56*x.57))>, x.52)
+         z.5   = z.49
+    
+    533. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^inv((x.56*x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*inv(x.62))
+         z     = z.44
+         z.1   = x.55^inv((x.57*x.62))
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^inv((x.56*x.57))>, x.52)
+         z.5   = z.49
+    
+    534. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv((x.56*x.62))
+         z     = z.44
+         z.1   = x.55^(x.57*inv(x.62))
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*x.57)>, x.52)
+         z.5   = z.49
+    
+    535. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^(x.56*x.57)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.62*inv(x.56))
+         z     = z.44
+         z.1   = x.55^(x.57*x.62)
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*x.57)>, x.52)
+         z.5   = z.49
+    
+    536. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv(x.62)
+         z     = z.44
+         z.1   = x.55^(x.56*inv((x.57*x.62)))
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.52)
+         z.5   = z.49
+    
+    537. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv((x.56*x.62))
+         z     = z.44
+         z.1   = x.55^inv((x.57*x.62))
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.52)
+         z.5   = z.49
+    
+    538. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*x.62)
+         z     = z.44
+         z.1   = x.55^(x.56*x.62)
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.52)
+         z.5   = z.49
+    
+    539. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*x.62*inv(x.56))
+         z     = z.44
+         z.1   = x.55^x.62
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.52)
+         z.5   = z.49
+    
+    540. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, x.53, z.49)
+         pkTe  = x.55^(x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*inv((x.56*x.62)))
+         z     = z.44
+         z.1   = x.55^inv(x.62)
+         z.2   = verify(x.53, <x.52, z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.55^(x.56*inv(x.57))>, x.52)
+         z.5   = z.49
+    
+    541. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^inv((x.55*x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.55*x.61*inv(x.62))
+         z     = z.44
+         z.1   = x.54^(x.61*inv((x.56*x.62)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^inv((x.55*x.56))>, x.52)
+         z.5   = z.49
+    
+    542. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*x.56)
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^(x.56*x.61*inv(x.62))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*x.56)>, x.52)
+         z.5   = z.49
+    
+    543. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = inv((x.56*x.62))
+         z     = z.44
+         z.1   = x.54^(x.55*inv((x.57*x.62)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         z.5   = z.49
+    
+    544. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*x.62*inv(x.55))
+         z     = z.44
+         z.1   = x.54^(x.56*x.62)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         z.5   = z.49
+    
+    545. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*x.56*inv(x.57))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.57*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^(x.56*inv(x.62))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*x.56*inv(x.57))>, x.52)
+         z.5   = z.49
+    
+    546. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.61*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^(x.61*inv(x.62))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv(x.56))>, x.52)
+         z.5   = z.49
+    
+    547. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv(x.62))
+         z     = z.44
+         z.1   = x.54^(x.55*x.61*inv((x.56*x.62)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv(x.56))>, x.52)
+         z.5   = z.49
+    
+    548. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv(x.56))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.61*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^(x.61*inv((x.56*x.62)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv(x.56))>, x.52)
+         z.5   = z.49
+    
+    549. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.62)
+         z     = z.44
+         z.1   = x.54^(x.55*x.62*inv(x.57))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>,
+                        x.52)
+         z.5   = z.49
+    
+    550. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*x.62*inv(x.55))
+         z     = z.44
+         z.1   = x.54^(x.62*inv(x.57))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>,
+                        x.52)
+         z.5   = z.49
+    
+    551. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*inv(x.62))
+         z     = z.44
+         z.1   = x.54^(x.55*inv((x.57*x.62)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>,
+                        x.52)
+         z.5   = z.49
+    
+    552. IDc   = IDc.33
+         certC = cert(x.50, sign(<x.50, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.52, sign(<x.52, z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.54^(x.55*inv((x.56*x.57)))
+         r1    = r1.38
+         s1    = s1.40
+         skC   = (x.56*inv((x.55*x.62)))
+         z     = z.44
+         z.1   = x.54^inv((x.57*x.62))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.33, r1.38, x.54^(x.55*inv((x.56*x.57)))>,
+                        x.52)
+         z.5   = z.49
+    
+    553. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^x.58
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^x.58>, x.54)
+         skC   = (x.62*inv((x.58*x.63)))
+         z     = z.44
+         z.1   = x.57^(x.62*inv(x.63))
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    554. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^inv(x.58)
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^inv(x.58)>, x.54)
+         skC   = (x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.57^(x.62*inv((x.58*x.63)))
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    555. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^inv((x.58*x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^inv((x.58*x.59))>, x.54)
+         skC   = (x.58*x.63)
+         z     = z.44
+         z.1   = x.57^(x.63*inv(x.59))
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    556. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^inv((x.58*x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^inv((x.58*x.59))>, x.54)
+         skC   = (x.58*inv(x.63))
+         z     = z.44
+         z.1   = x.57^inv((x.59*x.63))
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    557. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^(x.58*x.59)
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^(x.58*x.59)>, x.54)
+         skC   = inv((x.58*x.63))
+         z     = z.44
+         z.1   = x.57^(x.59*inv(x.63))
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    558. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^(x.58*x.59)
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^(x.58*x.59)>, x.54)
+         skC   = (x.63*inv(x.58))
+         z     = z.44
+         z.1   = x.57^(x.59*x.63)
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    559. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^(x.58*x.59*inv((x.60*x.61)))>, x.54)
+         skC   = (x.61*inv(x.59))
+         z     = z.44
+         z.1   = x.57^(x.58*inv(x.60))
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    560. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^(x.58*inv(x.59))>, x.54)
+         skC   = inv(x.63)
+         z     = z.44
+         z.1   = x.57^(x.58*inv((x.59*x.63)))
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    561. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^(x.58*inv(x.59))>, x.54)
+         skC   = inv((x.58*x.63))
+         z     = z.44
+         z.1   = x.57^inv((x.59*x.63))
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    562. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^(x.58*inv(x.59))>, x.54)
+         skC   = (x.59*x.63)
+         z     = z.44
+         z.1   = x.57^(x.58*x.63)
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    563. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^(x.58*inv(x.59))>, x.54)
+         skC   = (x.59*x.63*inv(x.58))
+         z     = z.44
+         z.1   = x.57^x.63
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    564. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), x.55, z.49)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.57^(x.58*inv(x.59))>, x.54)
+         skC   = (x.59*inv((x.58*x.63)))
+         z     = z.44
+         z.1   = x.57^inv(x.63)
+         z.2   = verify(x.55, <pk(x.54), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    565. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^inv((x.57*x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^inv((x.57*x.58))>, x.54)
+         skC   = (x.57*x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.56^(x.62*inv((x.58*x.63)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    566. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*x.58)
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*x.58)>, x.54)
+         skC   = (x.62*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^(x.58*x.62*inv(x.63))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    567. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*x.58*inv(x.59))>, x.54)
+         skC   = inv((x.58*x.63))
+         z     = z.44
+         z.1   = x.56^(x.57*inv((x.59*x.63)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    568. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*x.58*inv(x.59))>, x.54)
+         skC   = (x.59*x.63*inv(x.57))
+         z     = z.44
+         z.1   = x.56^(x.58*x.63)
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    569. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*x.58*inv(x.59))>, x.54)
+         skC   = (x.59*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^(x.58*inv(x.63))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    570. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv(x.58))>, x.54)
+         skC   = (x.58*x.62*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^(x.62*inv(x.63))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    571. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv(x.58))>, x.54)
+         skC   = (x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.56^(x.57*x.62*inv((x.58*x.63)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    572. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv(x.58))>, x.54)
+         skC   = (x.62*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^(x.62*inv((x.58*x.63)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    573. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv((x.58*x.59)))>, x.54)
+         skC   = (x.58*x.63)
+         z     = z.44
+         z.1   = x.56^(x.57*x.63*inv(x.59))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    574. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv((x.58*x.59)))>, x.54)
+         skC   = (x.58*x.63*inv(x.57))
+         z     = z.44
+         z.1   = x.56^(x.63*inv(x.59))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    575. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv((x.58*x.59)))>, x.54)
+         skC   = (x.58*inv(x.63))
+         z     = z.44
+         z.1   = x.56^(x.57*inv((x.59*x.63)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    576. IDc   = IDc.33
+         certC = cert(x.51, x.52, z.44)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv((x.58*x.59)))>, x.54)
+         skC   = (x.58*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^inv((x.59*x.63))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.44, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    577. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^inv((x.57*x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^inv((x.57*x.58))>, x.53)
+         skC   = (x.57*x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.56^(x.62*inv((x.58*x.63)))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    578. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*x.58)
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*x.58)>, x.53)
+         skC   = (x.62*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^(x.58*x.62*inv(x.63))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    579. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         skC   = inv((x.58*x.63))
+         z     = z.44
+         z.1   = x.56^(x.57*inv((x.59*x.63)))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    580. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         skC   = (x.59*x.63*inv(x.57))
+         z     = z.44
+         z.1   = x.56^(x.58*x.63)
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    581. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         skC   = (x.59*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^(x.58*inv(x.63))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    582. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv(x.58))>, x.53)
+         skC   = (x.58*x.62*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^(x.62*inv(x.63))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    583. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv(x.58))>, x.53)
+         skC   = (x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.56^(x.57*x.62*inv((x.58*x.63)))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    584. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv(x.58))>, x.53)
+         skC   = (x.62*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^(x.62*inv((x.58*x.63)))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    585. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*x.63)
+         z     = z.44
+         z.1   = x.56^(x.57*x.63*inv(x.59))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    586. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*x.63*inv(x.57))
+         z     = z.44
+         z.1   = x.56^(x.63*inv(x.59))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    587. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*inv(x.63))
+         z     = z.44
+         z.1   = x.56^(x.57*inv((x.59*x.63)))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    588. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), x.54, z.49)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.56^(x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*inv((x.57*x.63)))
+         z     = z.44
+         z.1   = x.56^inv((x.59*x.63))
+         z.2   = verify(x.54, <pk(x.53), z.49, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    589. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*x.57*inv(x.58))>, x.53)
+         skC   = (x.58*x.62*inv((x.56*x.63)))
+         z     = z.44
+         z.1   = x.55^(x.57*x.62*inv(x.63))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    590. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*x.57*inv(x.58))>, x.53)
+         skC   = (x.62*inv((x.56*x.63)))
+         z     = z.44
+         z.1   = x.55^(x.57*x.62*inv((x.58*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    591. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*x.63*inv(x.56))
+         z     = z.44
+         z.1   = x.55^(x.57*x.63*inv(x.59))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    592. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*inv((x.56*x.63)))
+         z     = z.44
+         z.1   = x.55^(x.57*inv((x.59*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    593. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv((x.57*x.58)))>, x.53)
+         skC   = (x.57*x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.55^(x.56*x.62*inv((x.58*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    594. IDc   = IDc.33
+         certC = cert(x.51, sign(<x.51, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.49, 'terminal'>, ca_sk), z.49)
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.38
+         s1    = sign(<IDc.33, r1.38, x.55^(x.56*inv((x.57*x.58)))>, x.53)
+         skC   = (x.57*x.62*inv((x.56*x.63)))
+         z     = z.44
+         z.1   = x.55^(x.62*inv((x.58*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    595. IDc   = IDc.34
+         certC = certC.35
+         certT = cert(x.51, x.52, z.50)
+         pkTe  = x.54^(x.55*x.56*inv((x.57*x.58)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.57*x.63*inv((x.55*x.64)))
+         z     = cert_id(certC.35)
+         z.1   = x.54^(x.56*x.63*inv((x.58*x.64)))
+         z.2   = verify(x.52, <x.51, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.35),
+                        <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.54^(x.55*x.56*inv((x.57*x.58)))>,
+                        x.51)
+         z.5   = z.50
+    
+    596. IDc   = IDc.34
+         certC = certC.35
+         certT = cert(pk(x.53), x.54, z.50)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         skC   = (x.59*x.63*inv((x.57*x.64)))
+         z     = cert_id(certC.35)
+         z.1   = x.56^(x.58*x.63*inv(x.64))
+         z.2   = verify(x.54, <pk(x.53), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.35),
+                        <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    597. IDc   = IDc.34
+         certC = certC.35
+         certT = cert(pk(x.53), x.54, z.50)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         skC   = (x.63*inv((x.57*x.64)))
+         z     = cert_id(certC.35)
+         z.1   = x.56^(x.58*x.63*inv((x.59*x.64)))
+         z.2   = verify(x.54, <pk(x.53), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.35),
+                        <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    598. IDc   = IDc.34
+         certC = certC.35
+         certT = cert(pk(x.53), x.54, z.50)
+         pkTe  = x.56^(x.57*x.58*inv((x.59*x.60)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.56^(x.57*x.58*inv((x.59*x.60)))>, x.53)
+         skC   = (x.59*x.64*inv(x.57))
+         z     = cert_id(certC.35)
+         z.1   = x.56^(x.58*x.64*inv(x.60))
+         z.2   = verify(x.54, <pk(x.53), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.35),
+                        <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    599. IDc   = IDc.34
+         certC = certC.35
+         certT = cert(pk(x.53), x.54, z.50)
+         pkTe  = x.56^(x.57*x.58*inv((x.59*x.60)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.56^(x.57*x.58*inv((x.59*x.60)))>, x.53)
+         skC   = (x.59*inv((x.57*x.64)))
+         z     = cert_id(certC.35)
+         z.1   = x.56^(x.58*inv((x.60*x.64)))
+         z.2   = verify(x.54, <pk(x.53), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.35),
+                        <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    600. IDc   = IDc.34
+         certC = certC.35
+         certT = cert(pk(x.53), x.54, z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*x.63*inv(x.64))
+         z     = cert_id(certC.35)
+         z.1   = x.56^(x.57*x.63*inv((x.59*x.64)))
+         z.2   = verify(x.54, <pk(x.53), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.35),
+                        <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    601. IDc   = IDc.34
+         certC = certC.35
+         certT = cert(pk(x.53), x.54, z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*x.63*inv((x.57*x.64)))
+         z     = cert_id(certC.35)
+         z.1   = x.56^(x.63*inv((x.59*x.64)))
+         z.2   = verify(x.54, <pk(x.53), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.35),
+                        <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    602. IDc   = IDc.34
+         certC = certC.35
+         certT = cert(pk(x.53), sign(<pk(x.53), z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.55^(x.56*x.57*inv((x.58*x.59)))>, x.53)
+         skC   = (x.58*x.63*inv((x.56*x.64)))
+         z     = cert_id(certC.35)
+         z.1   = x.55^(x.57*x.63*inv((x.59*x.64)))
+         z.2   = true
+         z.3   = verify(cert_sig(certC.35),
+                        <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    603. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = certT.36
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.63*inv((x.56*x.64)))
+         z     = z.45
+         z.1   = x.55^(x.57*x.63*inv(x.64))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*x.57*inv(x.58))>,
+                        cert_pk(certT.36))
+         z.5   = cert_id(certT.36)
+    
+    604. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = certT.36
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv((x.56*x.64)))
+         z     = z.45
+         z.1   = x.55^(x.57*x.63*inv((x.58*x.64)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*x.57*inv(x.58))>,
+                        cert_pk(certT.36))
+         z.5   = cert_id(certT.36)
+    
+    605. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = certT.36
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.64*inv(x.56))
+         z     = z.45
+         z.1   = x.55^(x.57*x.64*inv(x.59))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*x.57*inv((x.58*x.59)))>,
+                        cert_pk(certT.36))
+         z.5   = cert_id(certT.36)
+    
+    606. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = certT.36
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*inv((x.56*x.64)))
+         z     = z.45
+         z.1   = x.55^(x.57*inv((x.59*x.64)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*x.57*inv((x.58*x.59)))>,
+                        cert_pk(certT.36))
+         z.5   = cert_id(certT.36)
+    
+    607. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = certT.36
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.57*x.63*inv(x.64))
+         z     = z.45
+         z.1   = x.55^(x.56*x.63*inv((x.58*x.64)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*inv((x.57*x.58)))>,
+                        cert_pk(certT.36))
+         z.5   = cert_id(certT.36)
+    
+    608. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = certT.36
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.57*x.63*inv((x.56*x.64)))
+         z     = z.45
+         z.1   = x.55^(x.63*inv((x.58*x.64)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*inv((x.57*x.58)))>,
+                        cert_pk(certT.36))
+         z.5   = cert_id(certT.36)
+    
+    609. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^x.58
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv((x.58*x.64)))
+         z     = z.45
+         z.1   = x.57^(x.63*inv(x.64))
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^x.58>, x.54)
+         z.5   = z.50
+    
+    610. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^inv(x.58)
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv(x.64))
+         z     = z.45
+         z.1   = x.57^(x.63*inv((x.58*x.64)))
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^inv(x.58)>, x.54)
+         z.5   = z.50
+    
+    611. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^inv((x.58*x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.64)
+         z     = z.45
+         z.1   = x.57^(x.64*inv(x.59))
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^inv((x.58*x.59))>, x.54)
+         z.5   = z.50
+    
+    612. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^inv((x.58*x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*inv(x.64))
+         z     = z.45
+         z.1   = x.57^inv((x.59*x.64))
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^inv((x.58*x.59))>, x.54)
+         z.5   = z.50
+    
+    613. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^(x.58*x.59)
+         r1    = r1.39
+         s1    = s1.41
+         skC   = inv((x.58*x.64))
+         z     = z.45
+         z.1   = x.57^(x.59*inv(x.64))
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^(x.58*x.59)>, x.54)
+         z.5   = z.50
+    
+    614. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^(x.58*x.59)
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.64*inv(x.58))
+         z     = z.45
+         z.1   = x.57^(x.59*x.64)
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^(x.58*x.59)>, x.54)
+         z.5   = z.50
+    
+    615. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = inv(x.64)
+         z     = z.45
+         z.1   = x.57^(x.58*inv((x.59*x.64)))
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^(x.58*inv(x.59))>, x.54)
+         z.5   = z.50
+    
+    616. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = inv((x.58*x.64))
+         z     = z.45
+         z.1   = x.57^inv((x.59*x.64))
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^(x.58*inv(x.59))>, x.54)
+         z.5   = z.50
+    
+    617. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.59*x.64)
+         z     = z.45
+         z.1   = x.57^(x.58*x.64)
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^(x.58*inv(x.59))>, x.54)
+         z.5   = z.50
+    
+    618. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.59*x.64*inv(x.58))
+         z     = z.45
+         z.1   = x.57^x.64
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^(x.58*inv(x.59))>, x.54)
+         z.5   = z.50
+    
+    619. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, x.55, z.50)
+         pkTe  = x.57^(x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.59*inv((x.58*x.64)))
+         z     = z.45
+         z.1   = x.57^inv(x.64)
+         z.2   = verify(x.55, <x.54, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.57^(x.58*inv(x.59))>, x.54)
+         z.5   = z.50
+    
+    620. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^inv((x.57*x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.57*x.63*inv(x.64))
+         z     = z.45
+         z.1   = x.56^(x.63*inv((x.58*x.64)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^inv((x.57*x.58))>, x.54)
+         z.5   = z.50
+    
+    621. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*x.58)
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^(x.58*x.63*inv(x.64))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*x.58)>, x.54)
+         z.5   = z.50
+    
+    622. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = inv((x.58*x.64))
+         z     = z.45
+         z.1   = x.56^(x.57*inv((x.59*x.64)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*x.58*inv(x.59))>, x.54)
+         z.5   = z.50
+    
+    623. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.59*x.64*inv(x.57))
+         z     = z.45
+         z.1   = x.56^(x.58*x.64)
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*x.58*inv(x.59))>, x.54)
+         z.5   = z.50
+    
+    624. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.59*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^(x.58*inv(x.64))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*x.58*inv(x.59))>, x.54)
+         z.5   = z.50
+    
+    625. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.63*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^(x.63*inv(x.64))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv(x.58))>, x.54)
+         z.5   = z.50
+    
+    626. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv(x.64))
+         z     = z.45
+         z.1   = x.56^(x.57*x.63*inv((x.58*x.64)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv(x.58))>, x.54)
+         z.5   = z.50
+    
+    627. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^(x.63*inv((x.58*x.64)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv(x.58))>, x.54)
+         z.5   = z.50
+    
+    628. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.64)
+         z     = z.45
+         z.1   = x.56^(x.57*x.64*inv(x.59))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>,
+                        x.54)
+         z.5   = z.50
+    
+    629. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.64*inv(x.57))
+         z     = z.45
+         z.1   = x.56^(x.64*inv(x.59))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>,
+                        x.54)
+         z.5   = z.50
+    
+    630. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*inv(x.64))
+         z     = z.45
+         z.1   = x.56^(x.57*inv((x.59*x.64)))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>,
+                        x.54)
+         z.5   = z.50
+    
+    631. IDc   = IDc.34
+         certC = cert(x.51, x.52, z.45)
+         certT = cert(x.54, sign(<x.54, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^inv((x.59*x.64))
+         z.2   = true
+         z.3   = verify(x.52, <x.51, z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>,
+                        x.54)
+         z.5   = z.50
+    
+    632. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = certT.36
+         pkTe  = x.54^(x.55*x.56*inv((x.57*x.58)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.57*x.63*inv((x.55*x.64)))
+         z     = z.45
+         z.1   = x.54^(x.56*x.63*inv((x.58*x.64)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.54^(x.55*x.56*inv((x.57*x.58)))>,
+                        cert_pk(certT.36))
+         z.5   = cert_id(certT.36)
+    
+    633. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^inv((x.57*x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.57*x.63*inv(x.64))
+         z     = z.45
+         z.1   = x.56^(x.63*inv((x.58*x.64)))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^inv((x.57*x.58))>, x.53)
+         z.5   = z.50
+    
+    634. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*x.58)
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^(x.58*x.63*inv(x.64))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*x.58)>, x.53)
+         z.5   = z.50
+    
+    635. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = inv((x.58*x.64))
+         z     = z.45
+         z.1   = x.56^(x.57*inv((x.59*x.64)))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         z.5   = z.50
+    
+    636. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.59*x.64*inv(x.57))
+         z     = z.45
+         z.1   = x.56^(x.58*x.64)
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         z.5   = z.50
+    
+    637. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*x.58*inv(x.59))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.59*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^(x.58*inv(x.64))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*x.58*inv(x.59))>, x.53)
+         z.5   = z.50
+    
+    638. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.63*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^(x.63*inv(x.64))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv(x.58))>, x.53)
+         z.5   = z.50
+    
+    639. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv(x.64))
+         z     = z.45
+         z.1   = x.56^(x.57*x.63*inv((x.58*x.64)))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv(x.58))>, x.53)
+         z.5   = z.50
+    
+    640. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^(x.63*inv((x.58*x.64)))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv(x.58))>, x.53)
+         z.5   = z.50
+    
+    641. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.64)
+         z     = z.45
+         z.1   = x.56^(x.57*x.64*inv(x.59))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>,
+                        x.53)
+         z.5   = z.50
+    
+    642. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.64*inv(x.57))
+         z     = z.45
+         z.1   = x.56^(x.64*inv(x.59))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>,
+                        x.53)
+         z.5   = z.50
+    
+    643. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*inv(x.64))
+         z     = z.45
+         z.1   = x.56^(x.57*inv((x.59*x.64)))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>,
+                        x.53)
+         z.5   = z.50
+    
+    644. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, x.54, z.50)
+         pkTe  = x.56^(x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*inv((x.57*x.64)))
+         z     = z.45
+         z.1   = x.56^inv((x.59*x.64))
+         z.2   = verify(x.54, <x.53, z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.56^(x.57*inv((x.58*x.59)))>,
+                        x.53)
+         z.5   = z.50
+    
+    645. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, sign(<x.53, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.63*inv((x.56*x.64)))
+         z     = z.45
+         z.1   = x.55^(x.57*x.63*inv(x.64))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*x.57*inv(x.58))>, x.53)
+         z.5   = z.50
+    
+    646. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, sign(<x.53, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.55^(x.56*x.57*inv(x.58))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.63*inv((x.56*x.64)))
+         z     = z.45
+         z.1   = x.55^(x.57*x.63*inv((x.58*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*x.57*inv(x.58))>, x.53)
+         z.5   = z.50
+    
+    647. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, sign(<x.53, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*x.64*inv(x.56))
+         z     = z.45
+         z.1   = x.55^(x.57*x.64*inv(x.59))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*x.57*inv((x.58*x.59)))>,
+                        x.53)
+         z.5   = z.50
+    
+    648. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, sign(<x.53, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.55^(x.56*x.57*inv((x.58*x.59)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.58*inv((x.56*x.64)))
+         z     = z.45
+         z.1   = x.55^(x.57*inv((x.59*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*x.57*inv((x.58*x.59)))>,
+                        x.53)
+         z.5   = z.50
+    
+    649. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, sign(<x.53, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.57*x.63*inv(x.64))
+         z     = z.45
+         z.1   = x.55^(x.56*x.63*inv((x.58*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*inv((x.57*x.58)))>,
+                        x.53)
+         z.5   = z.50
+    
+    650. IDc   = IDc.34
+         certC = cert(x.51, sign(<x.51, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.53, sign(<x.53, z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.55^(x.56*inv((x.57*x.58)))
+         r1    = r1.39
+         s1    = s1.41
+         skC   = (x.57*x.63*inv((x.56*x.64)))
+         z     = z.45
+         z.1   = x.55^(x.63*inv((x.58*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.34, r1.39, x.55^(x.56*inv((x.57*x.58)))>,
+                        x.53)
+         z.5   = z.50
+    
+    651. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^inv((x.59*x.60))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^inv((x.59*x.60))>, x.55)
+         skC   = (x.59*x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.58^(x.64*inv((x.60*x.65)))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    652. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*x.60)
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*x.60)>, x.55)
+         skC   = (x.64*inv((x.59*x.65)))
+         z     = z.45
+         z.1   = x.58^(x.60*x.64*inv(x.65))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    653. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*x.60*inv(x.61))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*x.60*inv(x.61))>, x.55)
+         skC   = inv((x.60*x.65))
+         z     = z.45
+         z.1   = x.58^(x.59*inv((x.61*x.65)))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    654. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*x.60*inv(x.61))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*x.60*inv(x.61))>, x.55)
+         skC   = (x.61*x.65*inv(x.59))
+         z     = z.45
+         z.1   = x.58^(x.60*x.65)
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    655. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*x.60*inv(x.61))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*x.60*inv(x.61))>, x.55)
+         skC   = (x.61*inv((x.59*x.65)))
+         z     = z.45
+         z.1   = x.58^(x.60*inv(x.65))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    656. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*inv(x.60))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*inv(x.60))>, x.55)
+         skC   = (x.60*x.64*inv((x.59*x.65)))
+         z     = z.45
+         z.1   = x.58^(x.64*inv(x.65))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    657. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*inv(x.60))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*inv(x.60))>, x.55)
+         skC   = (x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.58^(x.59*x.64*inv((x.60*x.65)))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    658. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*inv(x.60))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*inv(x.60))>, x.55)
+         skC   = (x.64*inv((x.59*x.65)))
+         z     = z.45
+         z.1   = x.58^(x.64*inv((x.60*x.65)))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    659. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*inv((x.60*x.61)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*inv((x.60*x.61)))>, x.55)
+         skC   = (x.60*x.65)
+         z     = z.45
+         z.1   = x.58^(x.59*x.65*inv(x.61))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    660. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*inv((x.60*x.61)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*inv((x.60*x.61)))>, x.55)
+         skC   = (x.60*x.65*inv(x.59))
+         z     = z.45
+         z.1   = x.58^(x.65*inv(x.61))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    661. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*inv((x.60*x.61)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*inv((x.60*x.61)))>, x.55)
+         skC   = (x.60*inv(x.65))
+         z     = z.45
+         z.1   = x.58^(x.59*inv((x.61*x.65)))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    662. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), x.56, z.50)
+         pkTe  = x.58^(x.59*inv((x.60*x.61)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.58^(x.59*inv((x.60*x.61)))>, x.55)
+         skC   = (x.60*inv((x.59*x.65)))
+         z     = z.45
+         z.1   = x.58^inv((x.61*x.65))
+         z.2   = verify(x.56, <pk(x.55), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    663. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.57^(x.58*x.59*inv(x.60))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*x.59*inv(x.60))>, x.55)
+         skC   = (x.60*x.64*inv((x.58*x.65)))
+         z     = z.45
+         z.1   = x.57^(x.59*x.64*inv(x.65))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    664. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.57^(x.58*x.59*inv(x.60))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*x.59*inv(x.60))>, x.55)
+         skC   = (x.64*inv((x.58*x.65)))
+         z     = z.45
+         z.1   = x.57^(x.59*x.64*inv((x.60*x.65)))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    665. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*x.59*inv((x.60*x.61)))>, x.55)
+         skC   = (x.60*x.65*inv(x.58))
+         z     = z.45
+         z.1   = x.57^(x.59*x.65*inv(x.61))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    666. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*x.59*inv((x.60*x.61)))>, x.55)
+         skC   = (x.60*inv((x.58*x.65)))
+         z     = z.45
+         z.1   = x.57^(x.59*inv((x.61*x.65)))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    667. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.57^(x.58*inv((x.59*x.60)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*inv((x.59*x.60)))>, x.55)
+         skC   = (x.59*x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.57^(x.58*x.64*inv((x.60*x.65)))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    668. IDc   = IDc.34
+         certC = cert(x.52, x.53, z.45)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.57^(x.58*inv((x.59*x.60)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*inv((x.59*x.60)))>, x.55)
+         skC   = (x.59*x.64*inv((x.58*x.65)))
+         z     = z.45
+         z.1   = x.57^(x.64*inv((x.60*x.65)))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    669. IDc   = IDc.34
+         certC = cert(x.52, sign(<x.52, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.54), x.55, z.50)
+         pkTe  = x.57^(x.58*x.59*inv(x.60))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*x.59*inv(x.60))>, x.54)
+         skC   = (x.60*x.64*inv((x.58*x.65)))
+         z     = z.45
+         z.1   = x.57^(x.59*x.64*inv(x.65))
+         z.2   = verify(x.55, <pk(x.54), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    670. IDc   = IDc.34
+         certC = cert(x.52, sign(<x.52, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.54), x.55, z.50)
+         pkTe  = x.57^(x.58*x.59*inv(x.60))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*x.59*inv(x.60))>, x.54)
+         skC   = (x.64*inv((x.58*x.65)))
+         z     = z.45
+         z.1   = x.57^(x.59*x.64*inv((x.60*x.65)))
+         z.2   = verify(x.55, <pk(x.54), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    671. IDc   = IDc.34
+         certC = cert(x.52, sign(<x.52, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.54), x.55, z.50)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*x.59*inv((x.60*x.61)))>, x.54)
+         skC   = (x.60*x.65*inv(x.58))
+         z     = z.45
+         z.1   = x.57^(x.59*x.65*inv(x.61))
+         z.2   = verify(x.55, <pk(x.54), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    672. IDc   = IDc.34
+         certC = cert(x.52, sign(<x.52, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.54), x.55, z.50)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*x.59*inv((x.60*x.61)))>, x.54)
+         skC   = (x.60*inv((x.58*x.65)))
+         z     = z.45
+         z.1   = x.57^(x.59*inv((x.61*x.65)))
+         z.2   = verify(x.55, <pk(x.54), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    673. IDc   = IDc.34
+         certC = cert(x.52, sign(<x.52, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.54), x.55, z.50)
+         pkTe  = x.57^(x.58*inv((x.59*x.60)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*inv((x.59*x.60)))>, x.54)
+         skC   = (x.59*x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.57^(x.58*x.64*inv((x.60*x.65)))
+         z.2   = verify(x.55, <pk(x.54), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    674. IDc   = IDc.34
+         certC = cert(x.52, sign(<x.52, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.54), x.55, z.50)
+         pkTe  = x.57^(x.58*inv((x.59*x.60)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.57^(x.58*inv((x.59*x.60)))>, x.54)
+         skC   = (x.59*x.64*inv((x.58*x.65)))
+         z     = z.45
+         z.1   = x.57^(x.64*inv((x.60*x.65)))
+         z.2   = verify(x.55, <pk(x.54), z.50, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    675. IDc   = IDc.34
+         certC = cert(x.52, sign(<x.52, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.50, 'terminal'>, ca_sk), z.50)
+         pkTe  = x.56^(x.57*x.58*inv((x.59*x.60)))
+         r1    = r1.39
+         s1    = sign(<IDc.34, r1.39, x.56^(x.57*x.58*inv((x.59*x.60)))>, x.54)
+         skC   = (x.59*x.64*inv((x.57*x.65)))
+         z     = z.45
+         z.1   = x.56^(x.58*x.64*inv((x.60*x.65)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    676. IDc   = IDc.35
+         certC = certC.36
+         certT = cert(pk(x.54), x.55, z.51)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.57^(x.58*x.59*inv((x.60*x.61)))>, x.54)
+         skC   = (x.60*x.65*inv((x.58*x.66)))
+         z     = cert_id(certC.36)
+         z.1   = x.57^(x.59*x.65*inv((x.61*x.66)))
+         z.2   = verify(x.55, <pk(x.54), z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.36),
+                        <cert_pk(certC.36), cert_id(certC.36), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    677. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = certT.37
+         pkTe  = x.56^(x.57*x.58*inv((x.59*x.60)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.59*x.65*inv((x.57*x.66)))
+         z     = z.46
+         z.1   = x.56^(x.58*x.65*inv((x.60*x.66)))
+         z.2   = verify(cert_sig(certT.37),
+                        <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.56^(x.57*x.58*inv((x.59*x.60)))>,
+                        cert_pk(certT.37))
+         z.5   = cert_id(certT.37)
+    
+    678. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^inv((x.59*x.60))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.59*x.65*inv(x.66))
+         z     = z.46
+         z.1   = x.58^(x.65*inv((x.60*x.66)))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^inv((x.59*x.60))>, x.55)
+         z.5   = z.51
+    
+    679. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*x.60)
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.65*inv((x.59*x.66)))
+         z     = z.46
+         z.1   = x.58^(x.60*x.65*inv(x.66))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*x.60)>, x.55)
+         z.5   = z.51
+    
+    680. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*x.60*inv(x.61))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = inv((x.60*x.66))
+         z     = z.46
+         z.1   = x.58^(x.59*inv((x.61*x.66)))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*x.60*inv(x.61))>, x.55)
+         z.5   = z.51
+    
+    681. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*x.60*inv(x.61))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.61*x.66*inv(x.59))
+         z     = z.46
+         z.1   = x.58^(x.60*x.66)
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*x.60*inv(x.61))>, x.55)
+         z.5   = z.51
+    
+    682. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*x.60*inv(x.61))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.61*inv((x.59*x.66)))
+         z     = z.46
+         z.1   = x.58^(x.60*inv(x.66))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*x.60*inv(x.61))>, x.55)
+         z.5   = z.51
+    
+    683. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*inv(x.60))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*x.65*inv((x.59*x.66)))
+         z     = z.46
+         z.1   = x.58^(x.65*inv(x.66))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*inv(x.60))>, x.55)
+         z.5   = z.51
+    
+    684. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*inv(x.60))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.65*inv(x.66))
+         z     = z.46
+         z.1   = x.58^(x.59*x.65*inv((x.60*x.66)))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*inv(x.60))>, x.55)
+         z.5   = z.51
+    
+    685. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*inv(x.60))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.65*inv((x.59*x.66)))
+         z     = z.46
+         z.1   = x.58^(x.65*inv((x.60*x.66)))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*inv(x.60))>, x.55)
+         z.5   = z.51
+    
+    686. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*x.66)
+         z     = z.46
+         z.1   = x.58^(x.59*x.66*inv(x.61))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*inv((x.60*x.61)))>,
+                        x.55)
+         z.5   = z.51
+    
+    687. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*x.66*inv(x.59))
+         z     = z.46
+         z.1   = x.58^(x.66*inv(x.61))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*inv((x.60*x.61)))>,
+                        x.55)
+         z.5   = z.51
+    
+    688. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*inv(x.66))
+         z     = z.46
+         z.1   = x.58^(x.59*inv((x.61*x.66)))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*inv((x.60*x.61)))>,
+                        x.55)
+         z.5   = z.51
+    
+    689. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, x.56, z.51)
+         pkTe  = x.58^(x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*inv((x.59*x.66)))
+         z     = z.46
+         z.1   = x.58^inv((x.61*x.66))
+         z.2   = verify(x.56, <x.55, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.58^(x.59*inv((x.60*x.61)))>,
+                        x.55)
+         z.5   = z.51
+    
+    690. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, sign(<x.55, z.51, 'terminal'>, ca_sk), z.51)
+         pkTe  = x.57^(x.58*x.59*inv(x.60))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*x.65*inv((x.58*x.66)))
+         z     = z.46
+         z.1   = x.57^(x.59*x.65*inv(x.66))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*x.59*inv(x.60))>, x.55)
+         z.5   = z.51
+    
+    691. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, sign(<x.55, z.51, 'terminal'>, ca_sk), z.51)
+         pkTe  = x.57^(x.58*x.59*inv(x.60))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.65*inv((x.58*x.66)))
+         z     = z.46
+         z.1   = x.57^(x.59*x.65*inv((x.60*x.66)))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*x.59*inv(x.60))>, x.55)
+         z.5   = z.51
+    
+    692. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, sign(<x.55, z.51, 'terminal'>, ca_sk), z.51)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*x.66*inv(x.58))
+         z     = z.46
+         z.1   = x.57^(x.59*x.66*inv(x.61))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*x.59*inv((x.60*x.61)))>,
+                        x.55)
+         z.5   = z.51
+    
+    693. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, sign(<x.55, z.51, 'terminal'>, ca_sk), z.51)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*inv((x.58*x.66)))
+         z     = z.46
+         z.1   = x.57^(x.59*inv((x.61*x.66)))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*x.59*inv((x.60*x.61)))>,
+                        x.55)
+         z.5   = z.51
+    
+    694. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, sign(<x.55, z.51, 'terminal'>, ca_sk), z.51)
+         pkTe  = x.57^(x.58*inv((x.59*x.60)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.59*x.65*inv(x.66))
+         z     = z.46
+         z.1   = x.57^(x.58*x.65*inv((x.60*x.66)))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*inv((x.59*x.60)))>,
+                        x.55)
+         z.5   = z.51
+    
+    695. IDc   = IDc.35
+         certC = cert(x.52, x.53, z.46)
+         certT = cert(x.55, sign(<x.55, z.51, 'terminal'>, ca_sk), z.51)
+         pkTe  = x.57^(x.58*inv((x.59*x.60)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.59*x.65*inv((x.58*x.66)))
+         z     = z.46
+         z.1   = x.57^(x.65*inv((x.60*x.66)))
+         z.2   = true
+         z.3   = verify(x.53, <x.52, z.46, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*inv((x.59*x.60)))>,
+                        x.55)
+         z.5   = z.51
+    
+    696. IDc   = IDc.35
+         certC = cert(x.52, sign(<x.52, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(x.54, x.55, z.51)
+         pkTe  = x.57^(x.58*x.59*inv(x.60))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*x.65*inv((x.58*x.66)))
+         z     = z.46
+         z.1   = x.57^(x.59*x.65*inv(x.66))
+         z.2   = verify(x.55, <x.54, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*x.59*inv(x.60))>, x.54)
+         z.5   = z.51
+    
+    697. IDc   = IDc.35
+         certC = cert(x.52, sign(<x.52, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(x.54, x.55, z.51)
+         pkTe  = x.57^(x.58*x.59*inv(x.60))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.65*inv((x.58*x.66)))
+         z     = z.46
+         z.1   = x.57^(x.59*x.65*inv((x.60*x.66)))
+         z.2   = verify(x.55, <x.54, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*x.59*inv(x.60))>, x.54)
+         z.5   = z.51
+    
+    698. IDc   = IDc.35
+         certC = cert(x.52, sign(<x.52, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(x.54, x.55, z.51)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*x.66*inv(x.58))
+         z     = z.46
+         z.1   = x.57^(x.59*x.66*inv(x.61))
+         z.2   = verify(x.55, <x.54, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*x.59*inv((x.60*x.61)))>,
+                        x.54)
+         z.5   = z.51
+    
+    699. IDc   = IDc.35
+         certC = cert(x.52, sign(<x.52, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(x.54, x.55, z.51)
+         pkTe  = x.57^(x.58*x.59*inv((x.60*x.61)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.60*inv((x.58*x.66)))
+         z     = z.46
+         z.1   = x.57^(x.59*inv((x.61*x.66)))
+         z.2   = verify(x.55, <x.54, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*x.59*inv((x.60*x.61)))>,
+                        x.54)
+         z.5   = z.51
+    
+    700. IDc   = IDc.35
+         certC = cert(x.52, sign(<x.52, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(x.54, x.55, z.51)
+         pkTe  = x.57^(x.58*inv((x.59*x.60)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.59*x.65*inv(x.66))
+         z     = z.46
+         z.1   = x.57^(x.58*x.65*inv((x.60*x.66)))
+         z.2   = verify(x.55, <x.54, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*inv((x.59*x.60)))>,
+                        x.54)
+         z.5   = z.51
+    
+    701. IDc   = IDc.35
+         certC = cert(x.52, sign(<x.52, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(x.54, x.55, z.51)
+         pkTe  = x.57^(x.58*inv((x.59*x.60)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.59*x.65*inv((x.58*x.66)))
+         z     = z.46
+         z.1   = x.57^(x.65*inv((x.60*x.66)))
+         z.2   = verify(x.55, <x.54, z.51, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.57^(x.58*inv((x.59*x.60)))>,
+                        x.54)
+         z.5   = z.51
+    
+    702. IDc   = IDc.35
+         certC = cert(x.52, sign(<x.52, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(x.54, sign(<x.54, z.51, 'terminal'>, ca_sk), z.51)
+         pkTe  = x.56^(x.57*x.58*inv((x.59*x.60)))
+         r1    = r1.40
+         s1    = s1.42
+         skC   = (x.59*x.65*inv((x.57*x.66)))
+         z     = z.46
+         z.1   = x.56^(x.58*x.65*inv((x.60*x.66)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.35, r1.40, x.56^(x.57*x.58*inv((x.59*x.60)))>,
+                        x.54)
+         z.5   = z.51
+    
+    703. IDc   = IDc.35
+         certC = cert(x.53, x.54, z.46)
+         certT = cert(pk(x.56), x.57, z.51)
+         pkTe  = x.59^(x.60*x.61*inv(x.62))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.59^(x.60*x.61*inv(x.62))>, x.56)
+         skC   = (x.62*x.66*inv((x.60*x.67)))
+         z     = z.46
+         z.1   = x.59^(x.61*x.66*inv(x.67))
+         z.2   = verify(x.57, <pk(x.56), z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    704. IDc   = IDc.35
+         certC = cert(x.53, x.54, z.46)
+         certT = cert(pk(x.56), x.57, z.51)
+         pkTe  = x.59^(x.60*x.61*inv(x.62))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.59^(x.60*x.61*inv(x.62))>, x.56)
+         skC   = (x.66*inv((x.60*x.67)))
+         z     = z.46
+         z.1   = x.59^(x.61*x.66*inv((x.62*x.67)))
+         z.2   = verify(x.57, <pk(x.56), z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    705. IDc   = IDc.35
+         certC = cert(x.53, x.54, z.46)
+         certT = cert(pk(x.56), x.57, z.51)
+         pkTe  = x.59^(x.60*x.61*inv((x.62*x.63)))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.59^(x.60*x.61*inv((x.62*x.63)))>, x.56)
+         skC   = (x.62*x.67*inv(x.60))
+         z     = z.46
+         z.1   = x.59^(x.61*x.67*inv(x.63))
+         z.2   = verify(x.57, <pk(x.56), z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    706. IDc   = IDc.35
+         certC = cert(x.53, x.54, z.46)
+         certT = cert(pk(x.56), x.57, z.51)
+         pkTe  = x.59^(x.60*x.61*inv((x.62*x.63)))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.59^(x.60*x.61*inv((x.62*x.63)))>, x.56)
+         skC   = (x.62*inv((x.60*x.67)))
+         z     = z.46
+         z.1   = x.59^(x.61*inv((x.63*x.67)))
+         z.2   = verify(x.57, <pk(x.56), z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    707. IDc   = IDc.35
+         certC = cert(x.53, x.54, z.46)
+         certT = cert(pk(x.56), x.57, z.51)
+         pkTe  = x.59^(x.60*inv((x.61*x.62)))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.59^(x.60*inv((x.61*x.62)))>, x.56)
+         skC   = (x.61*x.66*inv(x.67))
+         z     = z.46
+         z.1   = x.59^(x.60*x.66*inv((x.62*x.67)))
+         z.2   = verify(x.57, <pk(x.56), z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    708. IDc   = IDc.35
+         certC = cert(x.53, x.54, z.46)
+         certT = cert(pk(x.56), x.57, z.51)
+         pkTe  = x.59^(x.60*inv((x.61*x.62)))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.59^(x.60*inv((x.61*x.62)))>, x.56)
+         skC   = (x.61*x.66*inv((x.60*x.67)))
+         z     = z.46
+         z.1   = x.59^(x.66*inv((x.62*x.67)))
+         z.2   = verify(x.57, <pk(x.56), z.51, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    709. IDc   = IDc.35
+         certC = cert(x.53, x.54, z.46)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.51, 'terminal'>, ca_sk), z.51)
+         pkTe  = x.58^(x.59*x.60*inv((x.61*x.62)))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.58^(x.59*x.60*inv((x.61*x.62)))>, x.56)
+         skC   = (x.61*x.66*inv((x.59*x.67)))
+         z     = z.46
+         z.1   = x.58^(x.60*x.66*inv((x.62*x.67)))
+         z.2   = true
+         z.3   = verify(x.54, <x.53, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    710. IDc   = IDc.35
+         certC = cert(x.53, sign(<x.53, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(pk(x.55), x.56, z.51)
+         pkTe  = x.58^(x.59*x.60*inv((x.61*x.62)))
+         r1    = r1.40
+         s1    = sign(<IDc.35, r1.40, x.58^(x.59*x.60*inv((x.61*x.62)))>, x.55)
+         skC   = (x.61*x.66*inv((x.59*x.67)))
+         z     = z.46
+         z.1   = x.58^(x.60*x.66*inv((x.62*x.67)))
+         z.2   = verify(x.56, <pk(x.55), z.51, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    711. IDc   = IDc.36
+         certC = cert(x.53, x.54, z.47)
+         certT = cert(x.56, x.57, z.52)
+         pkTe  = x.59^(x.60*x.61*inv(x.62))
+         r1    = r1.41
+         s1    = s1.43
+         skC   = (x.62*x.67*inv((x.60*x.68)))
+         z     = z.47
+         z.1   = x.59^(x.61*x.67*inv(x.68))
+         z.2   = verify(x.57, <x.56, z.52, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.47, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.36, r1.41, x.59^(x.60*x.61*inv(x.62))>, x.56)
+         z.5   = z.52
+    
+    712. IDc   = IDc.36
+         certC = cert(x.53, x.54, z.47)
+         certT = cert(x.56, x.57, z.52)
+         pkTe  = x.59^(x.60*x.61*inv(x.62))
+         r1    = r1.41
+         s1    = s1.43
+         skC   = (x.67*inv((x.60*x.68)))
+         z     = z.47
+         z.1   = x.59^(x.61*x.67*inv((x.62*x.68)))
+         z.2   = verify(x.57, <x.56, z.52, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.47, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.36, r1.41, x.59^(x.60*x.61*inv(x.62))>, x.56)
+         z.5   = z.52
+    
+    713. IDc   = IDc.36
+         certC = cert(x.53, x.54, z.47)
+         certT = cert(x.56, x.57, z.52)
+         pkTe  = x.59^(x.60*x.61*inv((x.62*x.63)))
+         r1    = r1.41
+         s1    = s1.43
+         skC   = (x.62*x.68*inv(x.60))
+         z     = z.47
+         z.1   = x.59^(x.61*x.68*inv(x.63))
+         z.2   = verify(x.57, <x.56, z.52, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.47, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.36, r1.41, x.59^(x.60*x.61*inv((x.62*x.63)))>,
+                        x.56)
+         z.5   = z.52
+    
+    714. IDc   = IDc.36
+         certC = cert(x.53, x.54, z.47)
+         certT = cert(x.56, x.57, z.52)
+         pkTe  = x.59^(x.60*x.61*inv((x.62*x.63)))
+         r1    = r1.41
+         s1    = s1.43
+         skC   = (x.62*inv((x.60*x.68)))
+         z     = z.47
+         z.1   = x.59^(x.61*inv((x.63*x.68)))
+         z.2   = verify(x.57, <x.56, z.52, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.47, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.36, r1.41, x.59^(x.60*x.61*inv((x.62*x.63)))>,
+                        x.56)
+         z.5   = z.52
+    
+    715. IDc   = IDc.36
+         certC = cert(x.53, x.54, z.47)
+         certT = cert(x.56, x.57, z.52)
+         pkTe  = x.59^(x.60*inv((x.61*x.62)))
+         r1    = r1.41
+         s1    = s1.43
+         skC   = (x.61*x.67*inv(x.68))
+         z     = z.47
+         z.1   = x.59^(x.60*x.67*inv((x.62*x.68)))
+         z.2   = verify(x.57, <x.56, z.52, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.47, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.36, r1.41, x.59^(x.60*inv((x.61*x.62)))>,
+                        x.56)
+         z.5   = z.52
+    
+    716. IDc   = IDc.36
+         certC = cert(x.53, x.54, z.47)
+         certT = cert(x.56, x.57, z.52)
+         pkTe  = x.59^(x.60*inv((x.61*x.62)))
+         r1    = r1.41
+         s1    = s1.43
+         skC   = (x.61*x.67*inv((x.60*x.68)))
+         z     = z.47
+         z.1   = x.59^(x.67*inv((x.62*x.68)))
+         z.2   = verify(x.57, <x.56, z.52, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.53, z.47, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.36, r1.41, x.59^(x.60*inv((x.61*x.62)))>,
+                        x.56)
+         z.5   = z.52
+    
+    717. IDc   = IDc.36
+         certC = cert(x.53, x.54, z.47)
+         certT = cert(x.56, sign(<x.56, z.52, 'terminal'>, ca_sk), z.52)
+         pkTe  = x.58^(x.59*x.60*inv((x.61*x.62)))
+         r1    = r1.41
+         s1    = s1.43
+         skC   = (x.61*x.67*inv((x.59*x.68)))
+         z     = z.47
+         z.1   = x.58^(x.60*x.67*inv((x.62*x.68)))
+         z.2   = true
+         z.3   = verify(x.54, <x.53, z.47, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.36, r1.41, x.58^(x.59*x.60*inv((x.61*x.62)))>,
+                        x.56)
+         z.5   = z.52
+    
+    718. IDc   = IDc.36
+         certC = cert(x.53, sign(<x.53, z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(x.55, x.56, z.52)
+         pkTe  = x.58^(x.59*x.60*inv((x.61*x.62)))
+         r1    = r1.41
+         s1    = s1.43
+         skC   = (x.61*x.67*inv((x.59*x.68)))
+         z     = z.47
+         z.1   = x.58^(x.60*x.67*inv((x.62*x.68)))
+         z.2   = verify(x.56, <x.55, z.52, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.43, <IDc.36, r1.41, x.58^(x.59*x.60*inv((x.61*x.62)))>,
+                        x.55)
+         z.5   = z.52
+    
+    719. IDc   = IDc.36
+         certC = cert(x.54, x.55, z.47)
+         certT = cert(pk(x.57), x.58, z.52)
+         pkTe  = x.60^(x.61*x.62*inv((x.63*x.64)))
+         r1    = r1.41
+         s1    = sign(<IDc.36, r1.41, x.60^(x.61*x.62*inv((x.63*x.64)))>, x.57)
+         skC   = (x.63*x.68*inv((x.61*x.69)))
+         z     = z.47
+         z.1   = x.60^(x.62*x.68*inv((x.64*x.69)))
+         z.2   = verify(x.58, <pk(x.57), z.52, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.54, z.47, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    720. IDc   = IDc.37
+         certC = cert(x.54, x.55, z.48)
+         certT = cert(x.57, x.58, z.53)
+         pkTe  = x.60^(x.61*x.62*inv((x.63*x.64)))
+         r1    = r1.42
+         s1    = s1.44
+         skC   = (x.63*x.69*inv((x.61*x.70)))
+         z     = z.48
+         z.1   = x.60^(x.62*x.69*inv((x.64*x.70)))
+         z.2   = verify(x.58, <x.57, z.53, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.54, z.48, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.44, <IDc.37, r1.42, x.60^(x.61*x.62*inv((x.63*x.64)))>,
+                        x.57)
+         z.5   = z.53
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, pkTe, IDc, r1, s1, certC, pkTe2, r2, tag> ), In( <skTe, T> )
+   ]
+  --[
+  Eq( T, cert_id(certT) ),
+  Eq( tag, mac(pkTe, kdf_mac(cert_pk(certC)^skTe, r2)) ),
+  Eq( pkTe, pkTe2 ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(s1, <IDc, r1, pkTe>, cert_pk(certT)), true ),
+  ValidTrans( T, 'terminal', cert_id(certC) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, pkTe, IDc, r1, s1, certC, pkTe2, r2, tag> ), In( <skTe, T> )
+     ]
+    --[
+    Eq( T, z ), Eq( tag, mac(pkTe, kdf_mac(z.1, r2)) ), Eq( pkTe, pkTe2 ),
+    Eq( z.2, true ), Eq( z.3, true ), Eq( z.4, true ),
+    ValidTrans( T, 'terminal', z.5 )
+    ]->
+     [ ]
+    variants (modulo AC)
+      1. IDc   = IDc.20
+         certC = certC.22
+         certT = certT.23
+         pkTe  = pkTe.24
+         r1    = r1.26
+         s1    = s1.28
+         skTe  = skTe.29
+         z     = cert_id(certT.23)
+         z.1   = cert_pk(certC.22)^skTe.29
+         z.2   = verify(cert_sig(certT.23),
+                        <cert_pk(certT.23), cert_id(certT.23), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.22),
+                        <cert_pk(certC.22), cert_id(certC.22), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.28, <IDc.20, r1.26, pkTe.24>, cert_pk(certT.23))
+         z.5   = cert_id(certC.22)
+    
+      2. IDc   = IDc.20
+         certC = certC.22
+         certT = certT.23
+         pkTe  = pkTe.24
+         r1    = r1.26
+         s1    = s1.28
+         skTe  = one
+         z     = cert_id(certT.23)
+         z.1   = cert_pk(certC.22)
+         z.2   = verify(cert_sig(certT.23),
+                        <cert_pk(certT.23), cert_id(certT.23), 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.22),
+                        <cert_pk(certC.22), cert_id(certC.22), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.28, <IDc.20, r1.26, pkTe.24>, cert_pk(certT.23))
+         z.5   = cert_id(certC.22)
+    
+      3. IDc   = IDc.21
+         certC = cert(DH_neutral, sign(<DH_neutral, z.38, 'chip'>, ca_sk), z.38)
+         certT = certT.24
+         pkTe  = pkTe.25
+         r1    = r1.27
+         s1    = s1.29
+         z     = cert_id(certT.24)
+         z.1   = DH_neutral
+         z.2   = verify(cert_sig(certT.24),
+                        <cert_pk(certT.24), cert_id(certT.24), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.29, <IDc.21, r1.27, pkTe.25>, cert_pk(certT.24))
+         z.5   = z.38
+    
+      4. IDc   = IDc.22
+         certC = certC.24
+         certT = cert(x.40, sign(<x.40, z.33, 'terminal'>, ca_sk), z.33)
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         skTe  = skTe.31
+         z     = z.33
+         z.1   = cert_pk(certC.24)^skTe.31
+         z.2   = true
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.22, r1.28, pkTe.26>, x.40)
+         z.5   = cert_id(certC.24)
+    
+      5. IDc   = IDc.22
+         certC = certC.24
+         certT = cert(x.40, sign(<x.40, z.33, 'terminal'>, ca_sk), z.33)
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         skTe  = one
+         z     = z.33
+         z.1   = cert_pk(certC.24)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.24),
+                        <cert_pk(certC.24), cert_id(certC.24), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.22, r1.28, pkTe.26>, x.40)
+         z.5   = cert_id(certC.24)
+    
+      6. IDc   = IDc.22
+         certC = cert(z.34, sign(<z.34, z.39, 'chip'>, ca_sk), z.39)
+         certT = certT.25
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         skTe  = one
+         z     = cert_id(certT.25)
+         z.1   = z.34
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.30, <IDc.22, r1.28, pkTe.26>, cert_pk(certT.25))
+         z.5   = z.39
+    
+      7. IDc   = IDc.22
+         certC = cert(x.40, sign(<x.40, z.39, 'chip'>, ca_sk), z.39)
+         certT = certT.25
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         skTe  = skTe.31
+         z     = cert_id(certT.25)
+         z.1   = x.40^skTe.31
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.30, <IDc.22, r1.28, pkTe.26>, cert_pk(certT.25))
+         z.5   = z.39
+    
+      8. IDc   = IDc.22
+         certC = cert(DH_neutral, x.40, z.39)
+         certT = certT.25
+         pkTe  = pkTe.26
+         r1    = r1.28
+         s1    = s1.30
+         z     = cert_id(certT.25)
+         z.1   = DH_neutral
+         z.2   = verify(cert_sig(certT.25),
+                        <cert_pk(certT.25), cert_id(certT.25), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.40, <DH_neutral, z.39, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.30, <IDc.22, r1.28, pkTe.26>, cert_pk(certT.25))
+         z.5   = z.39
+    
+      9. IDc   = IDc.23
+         certC = certC.25
+         certT = cert(x.41, x.42, z.34)
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skTe  = skTe.32
+         z     = z.34
+         z.1   = cert_pk(certC.25)^skTe.32
+         z.2   = verify(x.42, <x.41, z.34, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.25),
+                        <cert_pk(certC.25), cert_id(certC.25), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.23, r1.29, pkTe.27>, x.41)
+         z.5   = cert_id(certC.25)
+    
+     10. IDc   = IDc.23
+         certC = certC.25
+         certT = cert(x.41, x.42, z.34)
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skTe  = one
+         z     = z.34
+         z.1   = cert_pk(certC.25)
+         z.2   = verify(x.42, <x.41, z.34, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.25),
+                        <cert_pk(certC.25), cert_id(certC.25), 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.23, r1.29, pkTe.27>, x.41)
+         z.5   = cert_id(certC.25)
+    
+     11. IDc   = IDc.23
+         certC = cert(z.35, x.42, z.40)
+         certT = certT.26
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skTe  = one
+         z     = cert_id(certT.26)
+         z.1   = z.35
+         z.2   = verify(cert_sig(certT.26),
+                        <cert_pk(certT.26), cert_id(certT.26), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.42, <z.35, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.23, r1.29, pkTe.27>, cert_pk(certT.26))
+         z.5   = z.40
+    
+     12. IDc   = IDc.23
+         certC = cert(x.41, x.42, z.40)
+         certT = certT.26
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skTe  = skTe.32
+         z     = cert_id(certT.26)
+         z.1   = x.41^skTe.32
+         z.2   = verify(cert_sig(certT.26),
+                        <cert_pk(certT.26), cert_id(certT.26), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.42, <x.41, z.40, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.31, <IDc.23, r1.29, pkTe.27>, cert_pk(certT.26))
+         z.5   = z.40
+    
+     13. IDc   = IDc.23
+         certC = cert(DH_neutral, sign(<DH_neutral, z.40, 'chip'>, ca_sk), z.40)
+         certT = cert(x.42, sign(<x.42, z.34, 'terminal'>, ca_sk), z.34)
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         z     = z.34
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.31, <IDc.23, r1.29, pkTe.27>, x.42)
+         z.5   = z.40
+    
+     14. IDc   = IDc.23
+         certC = cert(z.35^x.42, sign(<z.35^x.42, z.40, 'chip'>, ca_sk), z.40)
+         certT = certT.26
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skTe  = inv(x.42)
+         z     = cert_id(certT.26)
+         z.1   = z.35
+         z.2   = verify(cert_sig(certT.26),
+                        <cert_pk(certT.26), cert_id(certT.26), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.31, <IDc.23, r1.29, pkTe.27>, cert_pk(certT.26))
+         z.5   = z.40
+    
+     15. IDc   = IDc.23
+         certC = cert(z.35^inv(skTe.32),
+                      sign(<z.35^inv(skTe.32), z.40, 'chip'>, ca_sk), z.40)
+         certT = certT.26
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skTe  = skTe.32
+         z     = cert_id(certT.26)
+         z.1   = z.35
+         z.2   = verify(cert_sig(certT.26),
+                        <cert_pk(certT.26), cert_id(certT.26), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.31, <IDc.23, r1.29, pkTe.27>, cert_pk(certT.26))
+         z.5   = z.40
+    
+     16. IDc   = IDc.23
+         certC = cert(x.41^x.42, sign(<x.41^x.42, z.40, 'chip'>, ca_sk), z.40)
+         certT = certT.26
+         pkTe  = pkTe.27
+         r1    = r1.29
+         s1    = s1.31
+         skTe  = skTe.32
+         z     = cert_id(certT.26)
+         z.1   = x.41^(skTe.32*x.42)
+         z.2   = verify(cert_sig(certT.26),
+                        <cert_pk(certT.26), cert_id(certT.26), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.31, <IDc.23, r1.29, pkTe.27>, cert_pk(certT.26))
+         z.5   = z.40
+    
+     17. IDc   = IDc.24
+         certC = cert(z.36, sign(<z.36, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(x.44, sign(<x.44, z.35, 'terminal'>, ca_sk), z.35)
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = one
+         z     = z.35
+         z.1   = z.36
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, x.44)
+         z.5   = z.41
+    
+     18. IDc   = IDc.24
+         certC = cert(x.42, sign(<x.42, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(x.44, sign(<x.44, z.35, 'terminal'>, ca_sk), z.35)
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = skTe.33
+         z     = z.35
+         z.1   = x.42^skTe.33
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, x.44)
+         z.5   = z.41
+    
+     19. IDc   = IDc.24
+         certC = cert(DH_neutral, x.42, z.41)
+         certT = cert(x.44, sign(<x.44, z.35, 'terminal'>, ca_sk), z.35)
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         z     = z.35
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = verify(x.42, <DH_neutral, z.41, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, x.44)
+         z.5   = z.41
+    
+     20. IDc   = IDc.24
+         certC = cert(DH_neutral, sign(<DH_neutral, z.41, 'chip'>, ca_sk), z.41)
+         certT = cert(x.43, x.44, z.35)
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         z     = z.35
+         z.1   = DH_neutral
+         z.2   = verify(x.44, <x.43, z.35, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, x.43)
+         z.5   = z.41
+    
+     21. IDc   = IDc.24
+         certC = cert(z.36^x.43, x.44, z.41)
+         certT = certT.27
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = inv(x.43)
+         z     = cert_id(certT.27)
+         z.1   = z.36
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <z.36^x.43, z.41, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, cert_pk(certT.27))
+         z.5   = z.41
+    
+     22. IDc   = IDc.24
+         certC = cert(z.36^inv(skTe.33), x.44, z.41)
+         certT = certT.27
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = skTe.33
+         z     = cert_id(certT.27)
+         z.1   = z.36
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <z.36^inv(skTe.33), z.41, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, cert_pk(certT.27))
+         z.5   = z.41
+    
+     23. IDc   = IDc.24
+         certC = cert(z.36^(x.43*inv(x.44)),
+                      sign(<z.36^(x.43*inv(x.44)), z.41, 'chip'>, ca_sk), z.41)
+         certT = certT.27
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = (x.44*inv(x.43))
+         z     = cert_id(certT.27)
+         z.1   = z.36
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, cert_pk(certT.27))
+         z.5   = z.41
+    
+     24. IDc   = IDc.24
+         certC = cert(x.42^x.43, x.44, z.41)
+         certT = certT.27
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = skTe.33
+         z     = cert_id(certT.27)
+         z.1   = x.42^(skTe.33*x.43)
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.44, <x.42^x.43, z.41, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, cert_pk(certT.27))
+         z.5   = z.41
+    
+     25. IDc   = IDc.24
+         certC = cert(x.42^inv((skTe.33*x.43)),
+                      sign(<x.42^inv((skTe.33*x.43)), z.41, 'chip'>, ca_sk), z.41)
+         certT = certT.27
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = skTe.33
+         z     = cert_id(certT.27)
+         z.1   = x.42^inv(x.43)
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, cert_pk(certT.27))
+         z.5   = z.41
+    
+     26. IDc   = IDc.24
+         certC = cert(x.42^(x.43*x.44),
+                      sign(<x.42^(x.43*x.44), z.41, 'chip'>, ca_sk), z.41)
+         certT = certT.27
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = inv(x.43)
+         z     = cert_id(certT.27)
+         z.1   = x.42^x.44
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, cert_pk(certT.27))
+         z.5   = z.41
+    
+     27. IDc   = IDc.24
+         certC = cert(x.42^(x.43*inv(skTe.33)),
+                      sign(<x.42^(x.43*inv(skTe.33)), z.41, 'chip'>, ca_sk), z.41)
+         certT = certT.27
+         pkTe  = pkTe.28
+         r1    = r1.30
+         s1    = s1.32
+         skTe  = skTe.33
+         z     = cert_id(certT.27)
+         z.1   = x.42^x.43
+         z.2   = verify(cert_sig(certT.27),
+                        <cert_pk(certT.27), cert_id(certT.27), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.32, <IDc.24, r1.30, pkTe.28>, cert_pk(certT.27))
+         z.5   = z.41
+    
+     28. IDc   = IDc.25
+         certC = cert(z.37, x.44, z.42)
+         certT = cert(x.46, sign(<x.46, z.36, 'terminal'>, ca_sk), z.36)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = one
+         z     = z.36
+         z.1   = z.37
+         z.2   = true
+         z.3   = verify(x.44, <z.37, z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, x.46)
+         z.5   = z.42
+    
+     29. IDc   = IDc.25
+         certC = cert(z.37, sign(<z.37, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.45, x.46, z.36)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = one
+         z     = z.36
+         z.1   = z.37
+         z.2   = verify(x.46, <x.45, z.36, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, x.45)
+         z.5   = z.42
+    
+     30. IDc   = IDc.25
+         certC = cert(x.43, x.44, z.42)
+         certT = cert(x.46, sign(<x.46, z.36, 'terminal'>, ca_sk), z.36)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = skTe.34
+         z     = z.36
+         z.1   = x.43^skTe.34
+         z.2   = true
+         z.3   = verify(x.44, <x.43, z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, x.46)
+         z.5   = z.42
+    
+     31. IDc   = IDc.25
+         certC = cert(x.43, sign(<x.43, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.45, x.46, z.36)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = skTe.34
+         z     = z.36
+         z.1   = x.43^skTe.34
+         z.2   = verify(x.46, <x.45, z.36, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, x.45)
+         z.5   = z.42
+    
+     32. IDc   = IDc.25
+         certC = cert(DH_neutral, x.43, z.42)
+         certT = cert(x.45, x.46, z.36)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         z     = z.36
+         z.1   = DH_neutral
+         z.2   = verify(x.46, <x.45, z.36, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.43, <DH_neutral, z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, x.45)
+         z.5   = z.42
+    
+     33. IDc   = IDc.25
+         certC = cert(z.37^x.44, sign(<z.37^x.44, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.46, sign(<x.46, z.36, 'terminal'>, ca_sk), z.36)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = inv(x.44)
+         z     = z.36
+         z.1   = z.37
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, x.46)
+         z.5   = z.42
+    
+     34. IDc   = IDc.25
+         certC = cert(z.37^inv(skTe.34),
+                      sign(<z.37^inv(skTe.34), z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.46, sign(<x.46, z.36, 'terminal'>, ca_sk), z.36)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = skTe.34
+         z     = z.36
+         z.1   = z.37
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, x.46)
+         z.5   = z.42
+    
+     35. IDc   = IDc.25
+         certC = cert(z.37^(x.44*inv(x.45)), x.46, z.42)
+         certT = certT.28
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = (x.45*inv(x.44))
+         z     = cert_id(certT.28)
+         z.1   = z.37
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <z.37^(x.44*inv(x.45)), z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, cert_pk(certT.28))
+         z.5   = z.42
+    
+     36. IDc   = IDc.25
+         certC = cert(x.43^x.44, sign(<x.43^x.44, z.42, 'chip'>, ca_sk), z.42)
+         certT = cert(x.46, sign(<x.46, z.36, 'terminal'>, ca_sk), z.36)
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = skTe.34
+         z     = z.36
+         z.1   = x.43^(skTe.34*x.44)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, x.46)
+         z.5   = z.42
+    
+     37. IDc   = IDc.25
+         certC = cert(x.43^inv((skTe.34*x.44)), x.46, z.42)
+         certT = certT.28
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = skTe.34
+         z     = cert_id(certT.28)
+         z.1   = x.43^inv(x.44)
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.43^inv((skTe.34*x.44)), z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, cert_pk(certT.28))
+         z.5   = z.42
+    
+     38. IDc   = IDc.25
+         certC = cert(x.43^(x.44*x.45), x.46, z.42)
+         certT = certT.28
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = inv(x.44)
+         z     = cert_id(certT.28)
+         z.1   = x.43^x.45
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.43^(x.44*x.45), z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, cert_pk(certT.28))
+         z.5   = z.42
+    
+     39. IDc   = IDc.25
+         certC = cert(x.43^(x.44*x.45*inv(x.46)),
+                      sign(<x.43^(x.44*x.45*inv(x.46)), z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.28
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = (x.46*inv(x.45))
+         z     = cert_id(certT.28)
+         z.1   = x.43^x.44
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, cert_pk(certT.28))
+         z.5   = z.42
+    
+     40. IDc   = IDc.25
+         certC = cert(x.43^(x.44*inv(skTe.34)), x.46, z.42)
+         certT = certT.28
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = skTe.34
+         z     = cert_id(certT.28)
+         z.1   = x.43^x.44
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.46, <x.43^(x.44*inv(skTe.34)), z.42, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, cert_pk(certT.28))
+         z.5   = z.42
+    
+     41. IDc   = IDc.25
+         certC = cert(x.43^(x.44*inv((skTe.34*x.45))),
+                      sign(<x.43^(x.44*inv((skTe.34*x.45))), z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.28
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = skTe.34
+         z     = cert_id(certT.28)
+         z.1   = x.43^(x.44*inv(x.45))
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, cert_pk(certT.28))
+         z.5   = z.42
+    
+     42. IDc   = IDc.25
+         certC = cert(x.43^(x.44*inv((x.45*x.46))),
+                      sign(<x.43^(x.44*inv((x.45*x.46))), z.42, 'chip'>, ca_sk), z.42)
+         certT = certT.28
+         pkTe  = pkTe.29
+         r1    = r1.31
+         s1    = s1.33
+         skTe  = (x.46*inv(x.44))
+         z     = cert_id(certT.28)
+         z.1   = x.43^inv(x.45)
+         z.2   = verify(cert_sig(certT.28),
+                        <cert_pk(certT.28), cert_id(certT.28), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.33, <IDc.25, r1.31, pkTe.29>, cert_pk(certT.28))
+         z.5   = z.42
+    
+     43. IDc   = IDc.26
+         certC = cert(z.38, x.45, z.43)
+         certT = cert(x.47, x.48, z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = one
+         z     = z.37
+         z.1   = z.38
+         z.2   = verify(x.48, <x.47, z.37, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.45, <z.38, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.47)
+         z.5   = z.43
+    
+     44. IDc   = IDc.26
+         certC = cert(x.44, x.45, z.43)
+         certT = cert(x.47, x.48, z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = skTe.35
+         z     = z.37
+         z.1   = x.44^skTe.35
+         z.2   = verify(x.48, <x.47, z.37, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.45, <x.44, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.47)
+         z.5   = z.43
+    
+     45. IDc   = IDc.26
+         certC = cert(z.38^x.45, x.46, z.43)
+         certT = cert(x.48, sign(<x.48, z.37, 'terminal'>, ca_sk), z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = inv(x.45)
+         z     = z.37
+         z.1   = z.38
+         z.2   = true
+         z.3   = verify(x.46, <z.38^x.45, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.48)
+         z.5   = z.43
+    
+     46. IDc   = IDc.26
+         certC = cert(z.38^x.45, sign(<z.38^x.45, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.47, x.48, z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = inv(x.45)
+         z     = z.37
+         z.1   = z.38
+         z.2   = verify(x.48, <x.47, z.37, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.47)
+         z.5   = z.43
+    
+     47. IDc   = IDc.26
+         certC = cert(z.38^inv(skTe.35), x.46, z.43)
+         certT = cert(x.48, sign(<x.48, z.37, 'terminal'>, ca_sk), z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = skTe.35
+         z     = z.37
+         z.1   = z.38
+         z.2   = true
+         z.3   = verify(x.46, <z.38^inv(skTe.35), z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.48)
+         z.5   = z.43
+    
+     48. IDc   = IDc.26
+         certC = cert(z.38^inv(skTe.35),
+                      sign(<z.38^inv(skTe.35), z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.47, x.48, z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = skTe.35
+         z     = z.37
+         z.1   = z.38
+         z.2   = verify(x.48, <x.47, z.37, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.47)
+         z.5   = z.43
+    
+     49. IDc   = IDc.26
+         certC = cert(z.38^(x.45*inv(x.46)),
+                      sign(<z.38^(x.45*inv(x.46)), z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.48, sign(<x.48, z.37, 'terminal'>, ca_sk), z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = (x.46*inv(x.45))
+         z     = z.37
+         z.1   = z.38
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.48)
+         z.5   = z.43
+    
+     50. IDc   = IDc.26
+         certC = cert(x.44^x.45, x.46, z.43)
+         certT = cert(x.48, sign(<x.48, z.37, 'terminal'>, ca_sk), z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = skTe.35
+         z     = z.37
+         z.1   = x.44^(skTe.35*x.45)
+         z.2   = true
+         z.3   = verify(x.46, <x.44^x.45, z.43, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.48)
+         z.5   = z.43
+    
+     51. IDc   = IDc.26
+         certC = cert(x.44^x.45, sign(<x.44^x.45, z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.47, x.48, z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = skTe.35
+         z     = z.37
+         z.1   = x.44^(skTe.35*x.45)
+         z.2   = verify(x.48, <x.47, z.37, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.47)
+         z.5   = z.43
+    
+     52. IDc   = IDc.26
+         certC = cert(x.44^inv((skTe.35*x.45)),
+                      sign(<x.44^inv((skTe.35*x.45)), z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.48, sign(<x.48, z.37, 'terminal'>, ca_sk), z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = skTe.35
+         z     = z.37
+         z.1   = x.44^inv(x.45)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.48)
+         z.5   = z.43
+    
+     53. IDc   = IDc.26
+         certC = cert(x.44^(x.45*x.46),
+                      sign(<x.44^(x.45*x.46), z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.48, sign(<x.48, z.37, 'terminal'>, ca_sk), z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = inv(x.45)
+         z     = z.37
+         z.1   = x.44^x.46
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.48)
+         z.5   = z.43
+    
+     54. IDc   = IDc.26
+         certC = cert(x.44^(x.45*x.46*inv(x.47)), x.48, z.43)
+         certT = certT.29
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = (x.47*inv(x.46))
+         z     = cert_id(certT.29)
+         z.1   = x.44^x.45
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.48, <x.44^(x.45*x.46*inv(x.47)), z.43, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, cert_pk(certT.29))
+         z.5   = z.43
+    
+     55. IDc   = IDc.26
+         certC = cert(x.44^(x.45*x.46*inv((x.47*x.48))),
+                      sign(<x.44^(x.45*x.46*inv((x.47*x.48))), z.43, 'chip'>, ca_sk), z.43)
+         certT = certT.29
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = (x.48*inv(x.46))
+         z     = cert_id(certT.29)
+         z.1   = x.44^(x.45*inv(x.47))
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, cert_pk(certT.29))
+         z.5   = z.43
+    
+     56. IDc   = IDc.26
+         certC = cert(x.44^(x.45*inv(skTe.35)),
+                      sign(<x.44^(x.45*inv(skTe.35)), z.43, 'chip'>, ca_sk), z.43)
+         certT = cert(x.48, sign(<x.48, z.37, 'terminal'>, ca_sk), z.37)
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = skTe.35
+         z     = z.37
+         z.1   = x.44^x.45
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, x.48)
+         z.5   = z.43
+    
+     57. IDc   = IDc.26
+         certC = cert(x.44^(x.45*inv((skTe.35*x.46))), x.48, z.43)
+         certT = certT.29
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = skTe.35
+         z     = cert_id(certT.29)
+         z.1   = x.44^(x.45*inv(x.46))
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.48, <x.44^(x.45*inv((skTe.35*x.46))), z.43, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, cert_pk(certT.29))
+         z.5   = z.43
+    
+     58. IDc   = IDc.26
+         certC = cert(x.44^(x.45*inv((x.46*x.47))), x.48, z.43)
+         certT = certT.29
+         pkTe  = pkTe.30
+         r1    = r1.32
+         s1    = s1.34
+         skTe  = (x.47*inv(x.45))
+         z     = cert_id(certT.29)
+         z.1   = x.44^inv(x.46)
+         z.2   = verify(cert_sig(certT.29),
+                        <cert_pk(certT.29), cert_id(certT.29), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.48, <x.44^(x.45*inv((x.46*x.47))), z.43, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.34, <IDc.26, r1.32, pkTe.30>, cert_pk(certT.29))
+         z.5   = z.43
+    
+     59. IDc   = IDc.27
+         certC = cert(DH_neutral, sign(<DH_neutral, z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(pk(x.48), sign(<pk(x.48), z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = sign(<IDc.27, r1.33, pkTe.31>, x.48)
+         z     = z.38
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.44
+    
+     60. IDc   = IDc.27
+         certC = cert(z.39^x.46, x.47, z.44)
+         certT = cert(x.49, x.50, z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = inv(x.46)
+         z     = z.38
+         z.1   = z.39
+         z.2   = verify(x.50, <x.49, z.38, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <z.39^x.46, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.49)
+         z.5   = z.44
+    
+     61. IDc   = IDc.27
+         certC = cert(z.39^inv(skTe.36), x.47, z.44)
+         certT = cert(x.49, x.50, z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = skTe.36
+         z     = z.38
+         z.1   = z.39
+         z.2   = verify(x.50, <x.49, z.38, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <z.39^inv(skTe.36), z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.49)
+         z.5   = z.44
+    
+     62. IDc   = IDc.27
+         certC = cert(z.39^(x.46*inv(x.47)), x.48, z.44)
+         certT = cert(x.50, sign(<x.50, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = (x.47*inv(x.46))
+         z     = z.38
+         z.1   = z.39
+         z.2   = true
+         z.3   = verify(x.48, <z.39^(x.46*inv(x.47)), z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.50)
+         z.5   = z.44
+    
+     63. IDc   = IDc.27
+         certC = cert(z.39^(x.46*inv(x.47)),
+                      sign(<z.39^(x.46*inv(x.47)), z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.49, x.50, z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = (x.47*inv(x.46))
+         z     = z.38
+         z.1   = z.39
+         z.2   = verify(x.50, <x.49, z.38, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.49)
+         z.5   = z.44
+    
+     64. IDc   = IDc.27
+         certC = cert(x.45^x.46, x.47, z.44)
+         certT = cert(x.49, x.50, z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = skTe.36
+         z     = z.38
+         z.1   = x.45^(skTe.36*x.46)
+         z.2   = verify(x.50, <x.49, z.38, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.47, <x.45^x.46, z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.49)
+         z.5   = z.44
+    
+     65. IDc   = IDc.27
+         certC = cert(x.45^inv((skTe.36*x.46)), x.48, z.44)
+         certT = cert(x.50, sign(<x.50, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = skTe.36
+         z     = z.38
+         z.1   = x.45^inv(x.46)
+         z.2   = true
+         z.3   = verify(x.48, <x.45^inv((skTe.36*x.46)), z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.50)
+         z.5   = z.44
+    
+     66. IDc   = IDc.27
+         certC = cert(x.45^inv((skTe.36*x.46)),
+                      sign(<x.45^inv((skTe.36*x.46)), z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.49, x.50, z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = skTe.36
+         z     = z.38
+         z.1   = x.45^inv(x.46)
+         z.2   = verify(x.50, <x.49, z.38, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.49)
+         z.5   = z.44
+    
+     67. IDc   = IDc.27
+         certC = cert(x.45^(x.46*x.47), x.48, z.44)
+         certT = cert(x.50, sign(<x.50, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = inv(x.46)
+         z     = z.38
+         z.1   = x.45^x.47
+         z.2   = true
+         z.3   = verify(x.48, <x.45^(x.46*x.47), z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.50)
+         z.5   = z.44
+    
+     68. IDc   = IDc.27
+         certC = cert(x.45^(x.46*x.47),
+                      sign(<x.45^(x.46*x.47), z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.49, x.50, z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = inv(x.46)
+         z     = z.38
+         z.1   = x.45^x.47
+         z.2   = verify(x.50, <x.49, z.38, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.49)
+         z.5   = z.44
+    
+     69. IDc   = IDc.27
+         certC = cert(x.45^(x.46*x.47*inv(x.48)),
+                      sign(<x.45^(x.46*x.47*inv(x.48)), z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.50, sign(<x.50, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = (x.48*inv(x.47))
+         z     = z.38
+         z.1   = x.45^x.46
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.50)
+         z.5   = z.44
+    
+     70. IDc   = IDc.27
+         certC = cert(x.45^(x.46*x.47*inv((x.48*x.49))), x.50, z.44)
+         certT = certT.30
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = (x.49*inv(x.47))
+         z     = cert_id(certT.30)
+         z.1   = x.45^(x.46*inv(x.48))
+         z.2   = verify(cert_sig(certT.30),
+                        <cert_pk(certT.30), cert_id(certT.30), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.50, <x.45^(x.46*x.47*inv((x.48*x.49))), z.44, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, cert_pk(certT.30))
+         z.5   = z.44
+    
+     71. IDc   = IDc.27
+         certC = cert(x.45^(x.46*inv(skTe.36)), x.48, z.44)
+         certT = cert(x.50, sign(<x.50, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = skTe.36
+         z     = z.38
+         z.1   = x.45^x.46
+         z.2   = true
+         z.3   = verify(x.48, <x.45^(x.46*inv(skTe.36)), z.44, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.50)
+         z.5   = z.44
+    
+     72. IDc   = IDc.27
+         certC = cert(x.45^(x.46*inv(skTe.36)),
+                      sign(<x.45^(x.46*inv(skTe.36)), z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.49, x.50, z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = skTe.36
+         z     = z.38
+         z.1   = x.45^x.46
+         z.2   = verify(x.50, <x.49, z.38, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.49)
+         z.5   = z.44
+    
+     73. IDc   = IDc.27
+         certC = cert(x.45^(x.46*inv((skTe.36*x.47))),
+                      sign(<x.45^(x.46*inv((skTe.36*x.47))), z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.50, sign(<x.50, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = skTe.36
+         z     = z.38
+         z.1   = x.45^(x.46*inv(x.47))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.50)
+         z.5   = z.44
+    
+     74. IDc   = IDc.27
+         certC = cert(x.45^(x.46*inv((x.47*x.48))),
+                      sign(<x.45^(x.46*inv((x.47*x.48))), z.44, 'chip'>, ca_sk), z.44)
+         certT = cert(x.50, sign(<x.50, z.38, 'terminal'>, ca_sk), z.38)
+         pkTe  = pkTe.31
+         r1    = r1.33
+         s1    = s1.35
+         skTe  = (x.48*inv(x.46))
+         z     = z.38
+         z.1   = x.45^inv(x.47)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.35, <IDc.27, r1.33, pkTe.31>, x.50)
+         z.5   = z.44
+    
+     75. IDc   = IDc.28
+         certC = certC.30
+         certT = cert(pk(x.49), sign(<pk(x.49), z.39, 'terminal'>, ca_sk), z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = sign(<IDc.28, r1.34, pkTe.32>, x.49)
+         skTe  = skTe.37
+         z     = z.39
+         z.1   = cert_pk(certC.30)^skTe.37
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = cert_id(certC.30)
+    
+     76. IDc   = IDc.28
+         certC = certC.30
+         certT = cert(pk(x.49), sign(<pk(x.49), z.39, 'terminal'>, ca_sk), z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = sign(<IDc.28, r1.34, pkTe.32>, x.49)
+         skTe  = one
+         z     = z.39
+         z.1   = cert_pk(certC.30)
+         z.2   = true
+         z.3   = verify(cert_sig(certC.30),
+                        <cert_pk(certC.30), cert_id(certC.30), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = cert_id(certC.30)
+    
+     77. IDc   = IDc.28
+         certC = cert(z.40, sign(<z.40, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.39, 'terminal'>, ca_sk), z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = sign(<IDc.28, r1.34, pkTe.32>, x.50)
+         skTe  = one
+         z     = z.39
+         z.1   = z.40
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+     78. IDc   = IDc.28
+         certC = cert(DH_neutral, x.48, z.45)
+         certT = cert(pk(x.50), sign(<pk(x.50), z.39, 'terminal'>, ca_sk), z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = sign(<IDc.28, r1.34, pkTe.32>, x.50)
+         z     = z.39
+         z.1   = DH_neutral
+         z.2   = true
+         z.3   = verify(x.48, <DH_neutral, z.45, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.45
+    
+     79. IDc   = IDc.28
+         certC = cert(DH_neutral, sign(<DH_neutral, z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(pk(x.49), x.50, z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = sign(<IDc.28, r1.34, pkTe.32>, x.49)
+         z     = z.39
+         z.1   = DH_neutral
+         z.2   = verify(x.50, <pk(x.49), z.39, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.45
+    
+     80. IDc   = IDc.28
+         certC = cert(z.40^(x.47*inv(x.48)), x.49, z.45)
+         certT = cert(x.51, x.52, z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = (x.48*inv(x.47))
+         z     = z.39
+         z.1   = z.40
+         z.2   = verify(x.52, <x.51, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <z.40^(x.47*inv(x.48)), z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.51)
+         z.5   = z.45
+    
+     81. IDc   = IDc.28
+         certC = cert(x.46^inv((skTe.37*x.47)), x.49, z.45)
+         certT = cert(x.51, x.52, z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = skTe.37
+         z     = z.39
+         z.1   = x.46^inv(x.47)
+         z.2   = verify(x.52, <x.51, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.46^inv((skTe.37*x.47)), z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.51)
+         z.5   = z.45
+    
+     82. IDc   = IDc.28
+         certC = cert(x.46^(x.47*x.48), x.49, z.45)
+         certT = cert(x.51, x.52, z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = inv(x.47)
+         z     = z.39
+         z.1   = x.46^x.48
+         z.2   = verify(x.52, <x.51, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.46^(x.47*x.48), z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.51)
+         z.5   = z.45
+    
+     83. IDc   = IDc.28
+         certC = cert(x.46^(x.47*x.48*inv(x.49)), x.50, z.45)
+         certT = cert(x.52, sign(<x.52, z.39, 'terminal'>, ca_sk), z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = (x.49*inv(x.48))
+         z     = z.39
+         z.1   = x.46^x.47
+         z.2   = true
+         z.3   = verify(x.50, <x.46^(x.47*x.48*inv(x.49)), z.45, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.52)
+         z.5   = z.45
+    
+     84. IDc   = IDc.28
+         certC = cert(x.46^(x.47*x.48*inv(x.49)),
+                      sign(<x.46^(x.47*x.48*inv(x.49)), z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.51, x.52, z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = (x.49*inv(x.48))
+         z     = z.39
+         z.1   = x.46^x.47
+         z.2   = verify(x.52, <x.51, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.51)
+         z.5   = z.45
+    
+     85. IDc   = IDc.28
+         certC = cert(x.46^(x.47*x.48*inv((x.49*x.50))),
+                      sign(<x.46^(x.47*x.48*inv((x.49*x.50))), z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.52, sign(<x.52, z.39, 'terminal'>, ca_sk), z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = (x.50*inv(x.48))
+         z     = z.39
+         z.1   = x.46^(x.47*inv(x.49))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.52)
+         z.5   = z.45
+    
+     86. IDc   = IDc.28
+         certC = cert(x.46^(x.47*inv(skTe.37)), x.49, z.45)
+         certT = cert(x.51, x.52, z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = skTe.37
+         z     = z.39
+         z.1   = x.46^x.47
+         z.2   = verify(x.52, <x.51, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <x.46^(x.47*inv(skTe.37)), z.45, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.51)
+         z.5   = z.45
+    
+     87. IDc   = IDc.28
+         certC = cert(x.46^(x.47*inv((skTe.37*x.48))), x.50, z.45)
+         certT = cert(x.52, sign(<x.52, z.39, 'terminal'>, ca_sk), z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = skTe.37
+         z     = z.39
+         z.1   = x.46^(x.47*inv(x.48))
+         z.2   = true
+         z.3   = verify(x.50, <x.46^(x.47*inv((skTe.37*x.48))), z.45, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.52)
+         z.5   = z.45
+    
+     88. IDc   = IDc.28
+         certC = cert(x.46^(x.47*inv((skTe.37*x.48))),
+                      sign(<x.46^(x.47*inv((skTe.37*x.48))), z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.51, x.52, z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = skTe.37
+         z     = z.39
+         z.1   = x.46^(x.47*inv(x.48))
+         z.2   = verify(x.52, <x.51, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.51)
+         z.5   = z.45
+    
+     89. IDc   = IDc.28
+         certC = cert(x.46^(x.47*inv((x.48*x.49))), x.50, z.45)
+         certT = cert(x.52, sign(<x.52, z.39, 'terminal'>, ca_sk), z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = (x.49*inv(x.47))
+         z     = z.39
+         z.1   = x.46^inv(x.48)
+         z.2   = true
+         z.3   = verify(x.50, <x.46^(x.47*inv((x.48*x.49))), z.45, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.52)
+         z.5   = z.45
+    
+     90. IDc   = IDc.28
+         certC = cert(x.46^(x.47*inv((x.48*x.49))),
+                      sign(<x.46^(x.47*inv((x.48*x.49))), z.45, 'chip'>, ca_sk), z.45)
+         certT = cert(x.51, x.52, z.39)
+         pkTe  = pkTe.32
+         r1    = r1.34
+         s1    = s1.36
+         skTe  = (x.49*inv(x.47))
+         z     = z.39
+         z.1   = x.46^inv(x.48)
+         z.2   = verify(x.52, <x.51, z.39, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.36, <IDc.28, r1.34, pkTe.32>, x.51)
+         z.5   = z.45
+    
+     91. IDc   = IDc.29
+         certC = certC.31
+         certT = cert(pk(x.50), x.51, z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.29, r1.35, pkTe.33>, x.50)
+         skTe  = skTe.38
+         z     = z.40
+         z.1   = cert_pk(certC.31)^skTe.38
+         z.2   = verify(x.51, <pk(x.50), z.40, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = cert_id(certC.31)
+    
+     92. IDc   = IDc.29
+         certC = certC.31
+         certT = cert(pk(x.50), x.51, z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.29, r1.35, pkTe.33>, x.50)
+         skTe  = one
+         z     = z.40
+         z.1   = cert_pk(certC.31)
+         z.2   = verify(x.51, <pk(x.50), z.40, 'terminal'>, pk(ca_sk))
+         z.3   = verify(cert_sig(certC.31),
+                        <cert_pk(certC.31), cert_id(certC.31), 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = cert_id(certC.31)
+    
+     93. IDc   = IDc.29
+         certC = cert(z.41, x.50, z.46)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.29, r1.35, pkTe.33>, x.52)
+         skTe  = one
+         z     = z.40
+         z.1   = z.41
+         z.2   = true
+         z.3   = verify(x.50, <z.41, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+     94. IDc   = IDc.29
+         certC = cert(z.41, sign(<z.41, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(pk(x.51), x.52, z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.29, r1.35, pkTe.33>, x.51)
+         skTe  = one
+         z     = z.40
+         z.1   = z.41
+         z.2   = verify(x.52, <pk(x.51), z.40, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+     95. IDc   = IDc.29
+         certC = cert(x.49, sign(<x.49, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(pk(x.51), sign(<pk(x.51), z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.29, r1.35, pkTe.33>, x.51)
+         skTe  = skTe.38
+         z     = z.40
+         z.1   = x.49^skTe.38
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+     96. IDc   = IDc.29
+         certC = cert(DH_neutral, x.49, z.46)
+         certT = cert(pk(x.51), x.52, z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.29, r1.35, pkTe.33>, x.51)
+         z     = z.40
+         z.1   = DH_neutral
+         z.2   = verify(x.52, <pk(x.51), z.40, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.49, <DH_neutral, z.46, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.46
+    
+     97. IDc   = IDc.29
+         certC = cert(z.41^x.50, sign(<z.41^x.50, z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.29, r1.35, pkTe.33>, x.52)
+         skTe  = inv(x.50)
+         z     = z.40
+         z.1   = z.41
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+     98. IDc   = IDc.29
+         certC = cert(z.41^inv(skTe.38),
+                      sign(<z.41^inv(skTe.38), z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(pk(x.52), sign(<pk(x.52), z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = sign(<IDc.29, r1.35, pkTe.33>, x.52)
+         skTe  = skTe.38
+         z     = z.40
+         z.1   = z.41
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.46
+    
+     99. IDc   = IDc.29
+         certC = cert(x.47^(x.48*x.49*inv(x.50)), x.51, z.46)
+         certT = cert(x.53, x.54, z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = s1.37
+         skTe  = (x.50*inv(x.49))
+         z     = z.40
+         z.1   = x.47^x.48
+         z.2   = verify(x.54, <x.53, z.40, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.47^(x.48*x.49*inv(x.50)), z.46, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.29, r1.35, pkTe.33>, x.53)
+         z.5   = z.46
+    
+    100. IDc   = IDc.29
+         certC = cert(x.47^(x.48*x.49*inv((x.50*x.51))), x.52, z.46)
+         certT = cert(x.54, sign(<x.54, z.40, 'terminal'>, ca_sk), z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = s1.37
+         skTe  = (x.51*inv(x.49))
+         z     = z.40
+         z.1   = x.47^(x.48*inv(x.50))
+         z.2   = true
+         z.3   = verify(x.52, <x.47^(x.48*x.49*inv((x.50*x.51))), z.46, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.29, r1.35, pkTe.33>, x.54)
+         z.5   = z.46
+    
+    101. IDc   = IDc.29
+         certC = cert(x.47^(x.48*x.49*inv((x.50*x.51))),
+                      sign(<x.47^(x.48*x.49*inv((x.50*x.51))), z.46, 'chip'>, ca_sk), z.46)
+         certT = cert(x.53, x.54, z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = s1.37
+         skTe  = (x.51*inv(x.49))
+         z     = z.40
+         z.1   = x.47^(x.48*inv(x.50))
+         z.2   = verify(x.54, <x.53, z.40, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.37, <IDc.29, r1.35, pkTe.33>, x.53)
+         z.5   = z.46
+    
+    102. IDc   = IDc.29
+         certC = cert(x.47^(x.48*inv((skTe.38*x.49))), x.51, z.46)
+         certT = cert(x.53, x.54, z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = s1.37
+         skTe  = skTe.38
+         z     = z.40
+         z.1   = x.47^(x.48*inv(x.49))
+         z.2   = verify(x.54, <x.53, z.40, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.47^(x.48*inv((skTe.38*x.49))), z.46, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.29, r1.35, pkTe.33>, x.53)
+         z.5   = z.46
+    
+    103. IDc   = IDc.29
+         certC = cert(x.47^(x.48*inv((x.49*x.50))), x.51, z.46)
+         certT = cert(x.53, x.54, z.40)
+         pkTe  = pkTe.33
+         r1    = r1.35
+         s1    = s1.37
+         skTe  = (x.50*inv(x.48))
+         z     = z.40
+         z.1   = x.47^inv(x.49)
+         z.2   = verify(x.54, <x.53, z.40, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.47^(x.48*inv((x.49*x.50))), z.46, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.37, <IDc.29, r1.35, pkTe.33>, x.53)
+         z.5   = z.46
+    
+    104. IDc   = IDc.30
+         certC = cert(z.42, x.51, z.47)
+         certT = cert(pk(x.53), x.54, z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.53)
+         skTe  = one
+         z     = z.41
+         z.1   = z.42
+         z.2   = verify(x.54, <pk(x.53), z.41, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <z.42, z.47, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    105. IDc   = IDc.30
+         certC = cert(x.50, x.51, z.47)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.53)
+         skTe  = skTe.39
+         z     = z.41
+         z.1   = x.50^skTe.39
+         z.2   = true
+         z.3   = verify(x.51, <x.50, z.47, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    106. IDc   = IDc.30
+         certC = cert(x.50, sign(<x.50, z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(pk(x.52), x.53, z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.52)
+         skTe  = skTe.39
+         z     = z.41
+         z.1   = x.50^skTe.39
+         z.2   = verify(x.53, <pk(x.52), z.41, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    107. IDc   = IDc.30
+         certC = cert(z.42^x.51, x.52, z.47)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.54)
+         skTe  = inv(x.51)
+         z     = z.41
+         z.1   = z.42
+         z.2   = true
+         z.3   = verify(x.52, <z.42^x.51, z.47, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    108. IDc   = IDc.30
+         certC = cert(z.42^x.51, sign(<z.42^x.51, z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(pk(x.53), x.54, z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.53)
+         skTe  = inv(x.51)
+         z     = z.41
+         z.1   = z.42
+         z.2   = verify(x.54, <pk(x.53), z.41, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    109. IDc   = IDc.30
+         certC = cert(z.42^inv(skTe.39), x.52, z.47)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.54)
+         skTe  = skTe.39
+         z     = z.41
+         z.1   = z.42
+         z.2   = true
+         z.3   = verify(x.52, <z.42^inv(skTe.39), z.47, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.47
+    
+    110. IDc   = IDc.30
+         certC = cert(z.42^inv(skTe.39),
+                      sign(<z.42^inv(skTe.39), z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(pk(x.53), x.54, z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.53)
+         skTe  = skTe.39
+         z     = z.41
+         z.1   = z.42
+         z.2   = verify(x.54, <pk(x.53), z.41, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    111. IDc   = IDc.30
+         certC = cert(z.42^(x.51*inv(x.52)),
+                      sign(<z.42^(x.51*inv(x.52)), z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.54)
+         skTe  = (x.52*inv(x.51))
+         z     = z.41
+         z.1   = z.42
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    112. IDc   = IDc.30
+         certC = cert(x.48^x.49, sign(<x.48^x.49, z.47, 'chip'>, ca_sk), z.47)
+         certT = certT.33
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = s1.38
+         skTe  = inv((x.49*x.57))
+         z     = cert_id(certT.33)
+         z.1   = x.48^inv(x.57)
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.30, r1.36, pkTe.34>, cert_pk(certT.33))
+         z.5   = z.47
+    
+    113. IDc   = IDc.30
+         certC = cert(x.48^x.49, sign(<x.48^x.49, z.47, 'chip'>, ca_sk), z.47)
+         certT = certT.33
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = s1.38
+         skTe  = (x.57*inv(x.49))
+         z     = cert_id(certT.33)
+         z.1   = x.48^x.57
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.30, r1.36, pkTe.34>, cert_pk(certT.33))
+         z.5   = z.47
+    
+    114. IDc   = IDc.30
+         certC = cert(x.48^inv(x.49), sign(<x.48^inv(x.49), z.47, 'chip'>, ca_sk),
+                      z.47)
+         certT = certT.33
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = s1.38
+         skTe  = inv(x.57)
+         z     = cert_id(certT.33)
+         z.1   = x.48^inv((x.49*x.57))
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.30, r1.36, pkTe.34>, cert_pk(certT.33))
+         z.5   = z.47
+    
+    115. IDc   = IDc.30
+         certC = cert(x.48^inv(x.49), sign(<x.48^inv(x.49), z.47, 'chip'>, ca_sk),
+                      z.47)
+         certT = certT.33
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = s1.38
+         skTe  = (x.49*x.57)
+         z     = cert_id(certT.33)
+         z.1   = x.48^x.57
+         z.2   = verify(cert_sig(certT.33),
+                        <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.38, <IDc.30, r1.36, pkTe.34>, cert_pk(certT.33))
+         z.5   = z.47
+    
+    116. IDc   = IDc.30
+         certC = cert(x.48^(x.49*x.50*inv((x.51*x.52))), x.53, z.47)
+         certT = cert(x.55, x.56, z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = s1.38
+         skTe  = (x.52*inv(x.50))
+         z     = z.41
+         z.1   = x.48^(x.49*inv(x.51))
+         z.2   = verify(x.56, <x.55, z.41, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.48^(x.49*x.50*inv((x.51*x.52))), z.47, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.38, <IDc.30, r1.36, pkTe.34>, x.55)
+         z.5   = z.47
+    
+    117. IDc   = IDc.30
+         certC = cert(x.50^x.51, sign(<x.50^x.51, z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(pk(x.53), sign(<pk(x.53), z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.53)
+         skTe  = skTe.39
+         z     = z.41
+         z.1   = x.50^(skTe.39*x.51)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    118. IDc   = IDc.30
+         certC = cert(x.50^inv((skTe.39*x.51)),
+                      sign(<x.50^inv((skTe.39*x.51)), z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.54)
+         skTe  = skTe.39
+         z     = z.41
+         z.1   = x.50^inv(x.51)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    119. IDc   = IDc.30
+         certC = cert(x.50^(x.51*x.52),
+                      sign(<x.50^(x.51*x.52), z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.54)
+         skTe  = inv(x.51)
+         z     = z.41
+         z.1   = x.50^x.52
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    120. IDc   = IDc.30
+         certC = cert(x.50^(x.51*inv(skTe.39)),
+                      sign(<x.50^(x.51*inv(skTe.39)), z.47, 'chip'>, ca_sk), z.47)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.41, 'terminal'>, ca_sk), z.41)
+         pkTe  = pkTe.34
+         r1    = r1.36
+         s1    = sign(<IDc.30, r1.36, pkTe.34>, x.54)
+         skTe  = skTe.39
+         z     = z.41
+         z.1   = x.50^x.51
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.47
+    
+    121. IDc   = IDc.31
+         certC = cert(x.51, x.52, z.48)
+         certT = cert(pk(x.54), x.55, z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.54)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = x.51^skTe.40
+         z.2   = verify(x.55, <pk(x.54), z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.51, z.48, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    122. IDc   = IDc.31
+         certC = cert(z.43^x.52, x.53, z.48)
+         certT = cert(pk(x.55), x.56, z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.55)
+         skTe  = inv(x.52)
+         z     = z.42
+         z.1   = z.43
+         z.2   = verify(x.56, <pk(x.55), z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <z.43^x.52, z.48, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    123. IDc   = IDc.31
+         certC = cert(z.43^inv(skTe.40), x.53, z.48)
+         certT = cert(pk(x.55), x.56, z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.55)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = z.43
+         z.2   = verify(x.56, <pk(x.55), z.42, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <z.43^inv(skTe.40), z.48, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    124. IDc   = IDc.31
+         certC = cert(z.43^(x.52*inv(x.53)), x.54, z.48)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.56)
+         skTe  = (x.53*inv(x.52))
+         z     = z.42
+         z.1   = z.43
+         z.2   = true
+         z.3   = verify(x.54, <z.43^(x.52*inv(x.53)), z.48, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    125. IDc   = IDc.31
+         certC = cert(z.43^(x.52*inv(x.53)),
+                      sign(<z.43^(x.52*inv(x.53)), z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.55), x.56, z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.55)
+         skTe  = (x.53*inv(x.52))
+         z     = z.42
+         z.1   = z.43
+         z.2   = verify(x.56, <pk(x.55), z.42, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    126. IDc   = IDc.31
+         certC = cert(x.49^x.50, x.51, z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = inv((x.50*x.59))
+         z     = cert_id(certT.34)
+         z.1   = x.49^inv(x.59)
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.49^x.50, z.48, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    127. IDc   = IDc.31
+         certC = cert(x.49^x.50, x.51, z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.59*inv(x.50))
+         z     = cert_id(certT.34)
+         z.1   = x.49^x.59
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.49^x.50, z.48, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    128. IDc   = IDc.31
+         certC = cert(x.49^x.50, sign(<x.49^x.50, z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.58*inv((x.50*x.59)))
+         z     = cert_id(certT.34)
+         z.1   = x.49^(x.58*inv(x.59))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    129. IDc   = IDc.31
+         certC = cert(x.49^x.50, sign(<x.49^x.50, z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(x.52, sign(<x.52, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = inv((x.50*x.59))
+         z     = z.42
+         z.1   = x.49^inv(x.59)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, x.52)
+         z.5   = z.48
+    
+    130. IDc   = IDc.31
+         certC = cert(x.49^x.50, sign(<x.49^x.50, z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(x.52, sign(<x.52, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.59*inv(x.50))
+         z     = z.42
+         z.1   = x.49^x.59
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, x.52)
+         z.5   = z.48
+    
+    131. IDc   = IDc.31
+         certC = cert(x.49^inv(x.50), x.51, z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = inv(x.59)
+         z     = cert_id(certT.34)
+         z.1   = x.49^inv((x.50*x.59))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.49^inv(x.50), z.48, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    132. IDc   = IDc.31
+         certC = cert(x.49^inv(x.50), x.51, z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.50*x.59)
+         z     = cert_id(certT.34)
+         z.1   = x.49^x.59
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.51, <x.49^inv(x.50), z.48, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    133. IDc   = IDc.31
+         certC = cert(x.49^inv(x.50), sign(<x.49^inv(x.50), z.48, 'chip'>, ca_sk),
+                      z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.58*inv(x.59))
+         z     = cert_id(certT.34)
+         z.1   = x.49^(x.58*inv((x.50*x.59)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    134. IDc   = IDc.31
+         certC = cert(x.49^inv(x.50), sign(<x.49^inv(x.50), z.48, 'chip'>, ca_sk),
+                      z.48)
+         certT = cert(x.52, sign(<x.52, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = inv(x.59)
+         z     = z.42
+         z.1   = x.49^inv((x.50*x.59))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, x.52)
+         z.5   = z.48
+    
+    135. IDc   = IDc.31
+         certC = cert(x.49^inv(x.50), sign(<x.49^inv(x.50), z.48, 'chip'>, ca_sk),
+                      z.48)
+         certT = cert(x.52, sign(<x.52, z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.50*x.59)
+         z     = z.42
+         z.1   = x.49^x.59
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, x.52)
+         z.5   = z.48
+    
+    136. IDc   = IDc.31
+         certC = cert(x.49^inv((x.50*x.51)),
+                      sign(<x.49^inv((x.50*x.51)), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.50*x.59)
+         z     = cert_id(certT.34)
+         z.1   = x.49^(x.59*inv(x.51))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    137. IDc   = IDc.31
+         certC = cert(x.49^inv((x.50*x.51)),
+                      sign(<x.49^inv((x.50*x.51)), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.50*inv(x.59))
+         z     = cert_id(certT.34)
+         z.1   = x.49^inv((x.51*x.59))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    138. IDc   = IDc.31
+         certC = cert(x.49^(x.50*x.51),
+                      sign(<x.49^(x.50*x.51), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = inv((x.50*x.59))
+         z     = cert_id(certT.34)
+         z.1   = x.49^(x.51*inv(x.59))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    139. IDc   = IDc.31
+         certC = cert(x.49^(x.50*x.51),
+                      sign(<x.49^(x.50*x.51), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.59*inv(x.50))
+         z     = cert_id(certT.34)
+         z.1   = x.49^(x.51*x.59)
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    140. IDc   = IDc.31
+         certC = cert(x.49^(x.50*inv(x.51)),
+                      sign(<x.49^(x.50*inv(x.51)), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = inv(x.59)
+         z     = cert_id(certT.34)
+         z.1   = x.49^(x.50*inv((x.51*x.59)))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    141. IDc   = IDc.31
+         certC = cert(x.49^(x.50*inv(x.51)),
+                      sign(<x.49^(x.50*inv(x.51)), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = inv((x.50*x.59))
+         z     = cert_id(certT.34)
+         z.1   = x.49^inv((x.51*x.59))
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    142. IDc   = IDc.31
+         certC = cert(x.49^(x.50*inv(x.51)),
+                      sign(<x.49^(x.50*inv(x.51)), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.51*x.59)
+         z     = cert_id(certT.34)
+         z.1   = x.49^(x.50*x.59)
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    143. IDc   = IDc.31
+         certC = cert(x.49^(x.50*inv(x.51)),
+                      sign(<x.49^(x.50*inv(x.51)), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.51*x.59*inv(x.50))
+         z     = cert_id(certT.34)
+         z.1   = x.49^x.59
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    144. IDc   = IDc.31
+         certC = cert(x.49^(x.50*inv(x.51)),
+                      sign(<x.49^(x.50*inv(x.51)), z.48, 'chip'>, ca_sk), z.48)
+         certT = certT.34
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = s1.39
+         skTe  = (x.51*inv((x.50*x.59)))
+         z     = cert_id(certT.34)
+         z.1   = x.49^inv(x.59)
+         z.2   = verify(cert_sig(certT.34),
+                        <cert_pk(certT.34), cert_id(certT.34), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.39, <IDc.31, r1.37, pkTe.35>, cert_pk(certT.34))
+         z.5   = z.48
+    
+    145. IDc   = IDc.31
+         certC = cert(x.51^x.52, x.53, z.48)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.55)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = x.51^(skTe.40*x.52)
+         z.2   = true
+         z.3   = verify(x.53, <x.51^x.52, z.48, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    146. IDc   = IDc.31
+         certC = cert(x.51^x.52, sign(<x.51^x.52, z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.54), x.55, z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.54)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = x.51^(skTe.40*x.52)
+         z.2   = verify(x.55, <pk(x.54), z.42, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    147. IDc   = IDc.31
+         certC = cert(x.51^x.52, sign(<x.51^x.52, z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.54)
+         skTe  = inv((x.52*x.60))
+         z     = z.42
+         z.1   = x.51^inv(x.60)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    148. IDc   = IDc.31
+         certC = cert(x.51^x.52, sign(<x.51^x.52, z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.54)
+         skTe  = (x.60*inv(x.52))
+         z     = z.42
+         z.1   = x.51^x.60
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    149. IDc   = IDc.31
+         certC = cert(x.51^inv(x.52), sign(<x.51^inv(x.52), z.48, 'chip'>, ca_sk),
+                      z.48)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.54)
+         skTe  = inv(x.60)
+         z     = z.42
+         z.1   = x.51^inv((x.52*x.60))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    150. IDc   = IDc.31
+         certC = cert(x.51^inv(x.52), sign(<x.51^inv(x.52), z.48, 'chip'>, ca_sk),
+                      z.48)
+         certT = cert(pk(x.54), sign(<pk(x.54), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.54)
+         skTe  = (x.52*x.60)
+         z     = z.42
+         z.1   = x.51^x.60
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    151. IDc   = IDc.31
+         certC = cert(x.51^inv((skTe.40*x.52)), x.54, z.48)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.56)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = x.51^inv(x.52)
+         z.2   = true
+         z.3   = verify(x.54, <x.51^inv((skTe.40*x.52)), z.48, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    152. IDc   = IDc.31
+         certC = cert(x.51^inv((skTe.40*x.52)),
+                      sign(<x.51^inv((skTe.40*x.52)), z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.55), x.56, z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.55)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = x.51^inv(x.52)
+         z.2   = verify(x.56, <pk(x.55), z.42, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    153. IDc   = IDc.31
+         certC = cert(x.51^(x.52*x.53), x.54, z.48)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.56)
+         skTe  = inv(x.52)
+         z     = z.42
+         z.1   = x.51^x.53
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*x.53), z.48, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    154. IDc   = IDc.31
+         certC = cert(x.51^(x.52*x.53),
+                      sign(<x.51^(x.52*x.53), z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.55), x.56, z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.55)
+         skTe  = inv(x.52)
+         z     = z.42
+         z.1   = x.51^x.53
+         z.2   = verify(x.56, <pk(x.55), z.42, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    155. IDc   = IDc.31
+         certC = cert(x.51^(x.52*x.53*inv(x.54)),
+                      sign(<x.51^(x.52*x.53*inv(x.54)), z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.56)
+         skTe  = (x.54*inv(x.53))
+         z     = z.42
+         z.1   = x.51^x.52
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    156. IDc   = IDc.31
+         certC = cert(x.51^(x.52*inv(skTe.40)), x.54, z.48)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.56)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = x.51^x.52
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*inv(skTe.40)), z.48, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.48
+    
+    157. IDc   = IDc.31
+         certC = cert(x.51^(x.52*inv(skTe.40)),
+                      sign(<x.51^(x.52*inv(skTe.40)), z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.55), x.56, z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.55)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = x.51^x.52
+         z.2   = verify(x.56, <pk(x.55), z.42, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    158. IDc   = IDc.31
+         certC = cert(x.51^(x.52*inv((skTe.40*x.53))),
+                      sign(<x.51^(x.52*inv((skTe.40*x.53))), z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.56)
+         skTe  = skTe.40
+         z     = z.42
+         z.1   = x.51^(x.52*inv(x.53))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    159. IDc   = IDc.31
+         certC = cert(x.51^(x.52*inv((x.53*x.54))),
+                      sign(<x.51^(x.52*inv((x.53*x.54))), z.48, 'chip'>, ca_sk), z.48)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.42, 'terminal'>, ca_sk), z.42)
+         pkTe  = pkTe.35
+         r1    = r1.37
+         s1    = sign(<IDc.31, r1.37, pkTe.35>, x.56)
+         skTe  = (x.54*inv(x.52))
+         z     = z.42
+         z.1   = x.51^inv(x.53)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.48
+    
+    160. IDc   = IDc.32
+         certC = cert(z.44^(x.53*inv(x.54)), x.55, z.49)
+         certT = cert(pk(x.57), x.58, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.57)
+         skTe  = (x.54*inv(x.53))
+         z     = z.43
+         z.1   = z.44
+         z.2   = verify(x.58, <pk(x.57), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <z.44^(x.53*inv(x.54)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    161. IDc   = IDc.32
+         certC = cert(x.50^x.51, x.52, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.60*inv((x.51*x.61)))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.60*inv(x.61))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.50^x.51, z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    162. IDc   = IDc.32
+         certC = cert(x.50^x.51, x.52, z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv((x.51*x.61))
+         z     = z.43
+         z.1   = x.50^inv(x.61)
+         z.2   = true
+         z.3   = verify(x.52, <x.50^x.51, z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    163. IDc   = IDc.32
+         certC = cert(x.50^x.51, x.52, z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.61*inv(x.51))
+         z     = z.43
+         z.1   = x.50^x.61
+         z.2   = true
+         z.3   = verify(x.52, <x.50^x.51, z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    164. IDc   = IDc.32
+         certC = cert(x.50^x.51, sign(<x.50^x.51, z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.53, x.54, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv((x.51*x.61))
+         z     = z.43
+         z.1   = x.50^inv(x.61)
+         z.2   = verify(x.54, <x.53, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.53)
+         z.5   = z.49
+    
+    165. IDc   = IDc.32
+         certC = cert(x.50^x.51, sign(<x.50^x.51, z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.53, x.54, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.61*inv(x.51))
+         z     = z.43
+         z.1   = x.50^x.61
+         z.2   = verify(x.54, <x.53, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.53)
+         z.5   = z.49
+    
+    166. IDc   = IDc.32
+         certC = cert(x.50^x.51, sign(<x.50^x.51, z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.53, sign(<x.53, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.60*inv((x.51*x.61)))
+         z     = z.43
+         z.1   = x.50^(x.60*inv(x.61))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.53)
+         z.5   = z.49
+    
+    167. IDc   = IDc.32
+         certC = cert(x.50^inv(x.51), x.52, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.60*inv(x.61))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.60*inv((x.51*x.61)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.52, <x.50^inv(x.51), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    168. IDc   = IDc.32
+         certC = cert(x.50^inv(x.51), x.52, z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv(x.61)
+         z     = z.43
+         z.1   = x.50^inv((x.51*x.61))
+         z.2   = true
+         z.3   = verify(x.52, <x.50^inv(x.51), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    169. IDc   = IDc.32
+         certC = cert(x.50^inv(x.51), x.52, z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.51*x.61)
+         z     = z.43
+         z.1   = x.50^x.61
+         z.2   = true
+         z.3   = verify(x.52, <x.50^inv(x.51), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    170. IDc   = IDc.32
+         certC = cert(x.50^inv(x.51), sign(<x.50^inv(x.51), z.49, 'chip'>, ca_sk),
+                      z.49)
+         certT = cert(x.53, x.54, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv(x.61)
+         z     = z.43
+         z.1   = x.50^inv((x.51*x.61))
+         z.2   = verify(x.54, <x.53, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.53)
+         z.5   = z.49
+    
+    171. IDc   = IDc.32
+         certC = cert(x.50^inv(x.51), sign(<x.50^inv(x.51), z.49, 'chip'>, ca_sk),
+                      z.49)
+         certT = cert(x.53, x.54, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.51*x.61)
+         z     = z.43
+         z.1   = x.50^x.61
+         z.2   = verify(x.54, <x.53, z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.53)
+         z.5   = z.49
+    
+    172. IDc   = IDc.32
+         certC = cert(x.50^inv(x.51), sign(<x.50^inv(x.51), z.49, 'chip'>, ca_sk),
+                      z.49)
+         certT = cert(x.53, sign(<x.53, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.60*inv(x.61))
+         z     = z.43
+         z.1   = x.50^(x.60*inv((x.51*x.61)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.53)
+         z.5   = z.49
+    
+    173. IDc   = IDc.32
+         certC = cert(x.50^inv((x.51*x.52)), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.51*x.61)
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.61*inv(x.52))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^inv((x.51*x.52)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    174. IDc   = IDc.32
+         certC = cert(x.50^inv((x.51*x.52)), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.51*inv(x.61))
+         z     = cert_id(certT.35)
+         z.1   = x.50^inv((x.52*x.61))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^inv((x.51*x.52)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    175. IDc   = IDc.32
+         certC = cert(x.50^inv((x.51*x.52)),
+                      sign(<x.50^inv((x.51*x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.51*x.60*inv(x.61))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.60*inv((x.52*x.61)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    176. IDc   = IDc.32
+         certC = cert(x.50^inv((x.51*x.52)),
+                      sign(<x.50^inv((x.51*x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.51*x.61)
+         z     = z.43
+         z.1   = x.50^(x.61*inv(x.52))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    177. IDc   = IDc.32
+         certC = cert(x.50^inv((x.51*x.52)),
+                      sign(<x.50^inv((x.51*x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.51*inv(x.61))
+         z     = z.43
+         z.1   = x.50^inv((x.52*x.61))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    178. IDc   = IDc.32
+         certC = cert(x.50^(x.51*x.52), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv((x.51*x.61))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.52*inv(x.61))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^(x.51*x.52), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    179. IDc   = IDc.32
+         certC = cert(x.50^(x.51*x.52), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.61*inv(x.51))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.52*x.61)
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^(x.51*x.52), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    180. IDc   = IDc.32
+         certC = cert(x.50^(x.51*x.52),
+                      sign(<x.50^(x.51*x.52), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.60*inv((x.51*x.61)))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.52*x.60*inv(x.61))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    181. IDc   = IDc.32
+         certC = cert(x.50^(x.51*x.52),
+                      sign(<x.50^(x.51*x.52), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv((x.51*x.61))
+         z     = z.43
+         z.1   = x.50^(x.52*inv(x.61))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    182. IDc   = IDc.32
+         certC = cert(x.50^(x.51*x.52),
+                      sign(<x.50^(x.51*x.52), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.61*inv(x.51))
+         z     = z.43
+         z.1   = x.50^(x.52*x.61)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    183. IDc   = IDc.32
+         certC = cert(x.50^(x.51*x.52*inv(x.53)),
+                      sign(<x.50^(x.51*x.52*inv(x.53)), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv((x.52*x.61))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.51*inv((x.53*x.61)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    184. IDc   = IDc.32
+         certC = cert(x.50^(x.51*x.52*inv(x.53)),
+                      sign(<x.50^(x.51*x.52*inv(x.53)), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.53*x.61*inv(x.51))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.52*x.61)
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    185. IDc   = IDc.32
+         certC = cert(x.50^(x.51*x.52*inv(x.53)),
+                      sign(<x.50^(x.51*x.52*inv(x.53)), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.53*inv((x.51*x.61)))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.52*inv(x.61))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    186. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv(x.61)
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.51*inv((x.52*x.61)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^(x.51*inv(x.52)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    187. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv((x.51*x.61))
+         z     = cert_id(certT.35)
+         z.1   = x.50^inv((x.52*x.61))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^(x.51*inv(x.52)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    188. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*x.61)
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.51*x.61)
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^(x.51*inv(x.52)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    189. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*x.61*inv(x.51))
+         z     = cert_id(certT.35)
+         z.1   = x.50^x.61
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^(x.51*inv(x.52)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    190. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)), x.53, z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*inv((x.51*x.61)))
+         z     = cert_id(certT.35)
+         z.1   = x.50^inv(x.61)
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.50^(x.51*inv(x.52)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    191. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)),
+                      sign(<x.50^(x.51*inv(x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*x.60*inv((x.51*x.61)))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.60*inv(x.61))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    192. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)),
+                      sign(<x.50^(x.51*inv(x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.60*inv(x.61))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.51*x.60*inv((x.52*x.61)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    193. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)),
+                      sign(<x.50^(x.51*inv(x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.60*inv((x.51*x.61)))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.60*inv((x.52*x.61)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    194. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)),
+                      sign(<x.50^(x.51*inv(x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv(x.61)
+         z     = z.43
+         z.1   = x.50^(x.51*inv((x.52*x.61)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    195. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)),
+                      sign(<x.50^(x.51*inv(x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = inv((x.51*x.61))
+         z     = z.43
+         z.1   = x.50^inv((x.52*x.61))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    196. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)),
+                      sign(<x.50^(x.51*inv(x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*x.61)
+         z     = z.43
+         z.1   = x.50^(x.51*x.61)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    197. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)),
+                      sign(<x.50^(x.51*inv(x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*x.61*inv(x.51))
+         z     = z.43
+         z.1   = x.50^x.61
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    198. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv(x.52)),
+                      sign(<x.50^(x.51*inv(x.52)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(x.54, sign(<x.54, z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*inv((x.51*x.61)))
+         z     = z.43
+         z.1   = x.50^inv(x.61)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, x.54)
+         z.5   = z.49
+    
+    199. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv((x.52*x.53))),
+                      sign(<x.50^(x.51*inv((x.52*x.53))), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*x.61)
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.51*x.61*inv(x.53))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    200. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv((x.52*x.53))),
+                      sign(<x.50^(x.51*inv((x.52*x.53))), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*x.61*inv(x.51))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.61*inv(x.53))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    201. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv((x.52*x.53))),
+                      sign(<x.50^(x.51*inv((x.52*x.53))), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*inv(x.61))
+         z     = cert_id(certT.35)
+         z.1   = x.50^(x.51*inv((x.53*x.61)))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    202. IDc   = IDc.32
+         certC = cert(x.50^(x.51*inv((x.52*x.53))),
+                      sign(<x.50^(x.51*inv((x.52*x.53))), z.49, 'chip'>, ca_sk), z.49)
+         certT = certT.35
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = s1.40
+         skTe  = (x.52*inv((x.51*x.61)))
+         z     = cert_id(certT.35)
+         z.1   = x.50^inv((x.53*x.61))
+         z.2   = verify(cert_sig(certT.35),
+                        <cert_pk(certT.35), cert_id(certT.35), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.40, <IDc.32, r1.38, pkTe.36>, cert_pk(certT.35))
+         z.5   = z.49
+    
+    203. IDc   = IDc.32
+         certC = cert(x.52^x.53, x.54, z.49)
+         certT = cert(pk(x.56), x.57, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = skTe.41
+         z     = z.43
+         z.1   = x.52^(skTe.41*x.53)
+         z.2   = verify(x.57, <pk(x.56), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.52^x.53, z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    204. IDc   = IDc.32
+         certC = cert(x.52^x.53, x.54, z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = inv((x.53*x.62))
+         z     = z.43
+         z.1   = x.52^inv(x.62)
+         z.2   = true
+         z.3   = verify(x.54, <x.52^x.53, z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    205. IDc   = IDc.32
+         certC = cert(x.52^x.53, x.54, z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = (x.62*inv(x.53))
+         z     = z.43
+         z.1   = x.52^x.62
+         z.2   = true
+         z.3   = verify(x.54, <x.52^x.53, z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    206. IDc   = IDc.32
+         certC = cert(x.52^x.53, sign(<x.52^x.53, z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.55), x.56, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.55)
+         skTe  = inv((x.53*x.62))
+         z     = z.43
+         z.1   = x.52^inv(x.62)
+         z.2   = verify(x.56, <pk(x.55), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    207. IDc   = IDc.32
+         certC = cert(x.52^x.53, sign(<x.52^x.53, z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.55), x.56, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.55)
+         skTe  = (x.62*inv(x.53))
+         z     = z.43
+         z.1   = x.52^x.62
+         z.2   = verify(x.56, <pk(x.55), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    208. IDc   = IDc.32
+         certC = cert(x.52^x.53, sign(<x.52^x.53, z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.55)
+         skTe  = (x.61*inv((x.53*x.62)))
+         z     = z.43
+         z.1   = x.52^(x.61*inv(x.62))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    209. IDc   = IDc.32
+         certC = cert(x.52^inv(x.53), x.54, z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = inv(x.62)
+         z     = z.43
+         z.1   = x.52^inv((x.53*x.62))
+         z.2   = true
+         z.3   = verify(x.54, <x.52^inv(x.53), z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    210. IDc   = IDc.32
+         certC = cert(x.52^inv(x.53), x.54, z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = (x.53*x.62)
+         z     = z.43
+         z.1   = x.52^x.62
+         z.2   = true
+         z.3   = verify(x.54, <x.52^inv(x.53), z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    211. IDc   = IDc.32
+         certC = cert(x.52^inv(x.53), sign(<x.52^inv(x.53), z.49, 'chip'>, ca_sk),
+                      z.49)
+         certT = cert(pk(x.55), x.56, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.55)
+         skTe  = inv(x.62)
+         z     = z.43
+         z.1   = x.52^inv((x.53*x.62))
+         z.2   = verify(x.56, <pk(x.55), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    212. IDc   = IDc.32
+         certC = cert(x.52^inv(x.53), sign(<x.52^inv(x.53), z.49, 'chip'>, ca_sk),
+                      z.49)
+         certT = cert(pk(x.55), x.56, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.55)
+         skTe  = (x.53*x.62)
+         z     = z.43
+         z.1   = x.52^x.62
+         z.2   = verify(x.56, <pk(x.55), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    213. IDc   = IDc.32
+         certC = cert(x.52^inv(x.53), sign(<x.52^inv(x.53), z.49, 'chip'>, ca_sk),
+                      z.49)
+         certT = cert(pk(x.55), sign(<pk(x.55), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.55)
+         skTe  = (x.61*inv(x.62))
+         z     = z.43
+         z.1   = x.52^(x.61*inv((x.53*x.62)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    214. IDc   = IDc.32
+         certC = cert(x.52^inv((skTe.41*x.53)), x.55, z.49)
+         certT = cert(pk(x.57), x.58, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.57)
+         skTe  = skTe.41
+         z     = z.43
+         z.1   = x.52^inv(x.53)
+         z.2   = verify(x.58, <pk(x.57), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^inv((skTe.41*x.53)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    215. IDc   = IDc.32
+         certC = cert(x.52^inv((x.53*x.54)),
+                      sign(<x.52^inv((x.53*x.54)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = (x.53*x.62)
+         z     = z.43
+         z.1   = x.52^(x.62*inv(x.54))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    216. IDc   = IDc.32
+         certC = cert(x.52^inv((x.53*x.54)),
+                      sign(<x.52^inv((x.53*x.54)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = (x.53*inv(x.62))
+         z     = z.43
+         z.1   = x.52^inv((x.54*x.62))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    217. IDc   = IDc.32
+         certC = cert(x.52^(x.53*x.54), x.55, z.49)
+         certT = cert(pk(x.57), x.58, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.57)
+         skTe  = inv(x.53)
+         z     = z.43
+         z.1   = x.52^x.54
+         z.2   = verify(x.58, <pk(x.57), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*x.54), z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    218. IDc   = IDc.32
+         certC = cert(x.52^(x.53*x.54),
+                      sign(<x.52^(x.53*x.54), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = inv((x.53*x.62))
+         z     = z.43
+         z.1   = x.52^(x.54*inv(x.62))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    219. IDc   = IDc.32
+         certC = cert(x.52^(x.53*x.54),
+                      sign(<x.52^(x.53*x.54), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = (x.62*inv(x.53))
+         z     = z.43
+         z.1   = x.52^(x.54*x.62)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    220. IDc   = IDc.32
+         certC = cert(x.52^(x.53*x.54*inv(x.55)), x.56, z.49)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.58)
+         skTe  = (x.55*inv(x.54))
+         z     = z.43
+         z.1   = x.52^x.53
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*x.54*inv(x.55)), z.49, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    221. IDc   = IDc.32
+         certC = cert(x.52^(x.53*x.54*inv(x.55)),
+                      sign(<x.52^(x.53*x.54*inv(x.55)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.57), x.58, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.57)
+         skTe  = (x.55*inv(x.54))
+         z     = z.43
+         z.1   = x.52^x.53
+         z.2   = verify(x.58, <pk(x.57), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    222. IDc   = IDc.32
+         certC = cert(x.52^(x.53*x.54*inv((x.55*x.56))),
+                      sign(<x.52^(x.53*x.54*inv((x.55*x.56))), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.58)
+         skTe  = (x.56*inv(x.54))
+         z     = z.43
+         z.1   = x.52^(x.53*inv(x.55))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    223. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv(skTe.41)), x.55, z.49)
+         certT = cert(pk(x.57), x.58, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.57)
+         skTe  = skTe.41
+         z     = z.43
+         z.1   = x.52^x.53
+         z.2   = verify(x.58, <pk(x.57), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*inv(skTe.41)), z.49, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    224. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv(x.54)),
+                      sign(<x.52^(x.53*inv(x.54)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = inv(x.62)
+         z     = z.43
+         z.1   = x.52^(x.53*inv((x.54*x.62)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    225. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv(x.54)),
+                      sign(<x.52^(x.53*inv(x.54)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = inv((x.53*x.62))
+         z     = z.43
+         z.1   = x.52^inv((x.54*x.62))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    226. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv(x.54)),
+                      sign(<x.52^(x.53*inv(x.54)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = (x.54*x.62)
+         z     = z.43
+         z.1   = x.52^(x.53*x.62)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    227. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv(x.54)),
+                      sign(<x.52^(x.53*inv(x.54)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = (x.54*x.62*inv(x.53))
+         z     = z.43
+         z.1   = x.52^x.62
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    228. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv(x.54)),
+                      sign(<x.52^(x.53*inv(x.54)), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.56), sign(<pk(x.56), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.56)
+         skTe  = (x.54*inv((x.53*x.62)))
+         z     = z.43
+         z.1   = x.52^inv(x.62)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    229. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv((skTe.41*x.54))), x.56, z.49)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.58)
+         skTe  = skTe.41
+         z     = z.43
+         z.1   = x.52^(x.53*inv(x.54))
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*inv((skTe.41*x.54))), z.49, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    230. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv((skTe.41*x.54))),
+                      sign(<x.52^(x.53*inv((skTe.41*x.54))), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.57), x.58, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.57)
+         skTe  = skTe.41
+         z     = z.43
+         z.1   = x.52^(x.53*inv(x.54))
+         z.2   = verify(x.58, <pk(x.57), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    231. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv((x.54*x.55))), x.56, z.49)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.43, 'terminal'>, ca_sk), z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.58)
+         skTe  = (x.55*inv(x.53))
+         z     = z.43
+         z.1   = x.52^inv(x.54)
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*inv((x.54*x.55))), z.49, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.49
+    
+    232. IDc   = IDc.32
+         certC = cert(x.52^(x.53*inv((x.54*x.55))),
+                      sign(<x.52^(x.53*inv((x.54*x.55))), z.49, 'chip'>, ca_sk), z.49)
+         certT = cert(pk(x.57), x.58, z.43)
+         pkTe  = pkTe.36
+         r1    = r1.38
+         s1    = sign(<IDc.32, r1.38, pkTe.36>, x.57)
+         skTe  = (x.55*inv(x.53))
+         z     = z.43
+         z.1   = x.52^inv(x.54)
+         z.2   = verify(x.58, <pk(x.57), z.43, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.49
+    
+    233. IDc   = IDc.33
+         certC = cert(x.51^x.52, x.53, z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv((x.52*x.63))
+         z     = z.44
+         z.1   = x.51^inv(x.63)
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.51^x.52, z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    234. IDc   = IDc.33
+         certC = cert(x.51^x.52, x.53, z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.63*inv(x.52))
+         z     = z.44
+         z.1   = x.51^x.63
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.51^x.52, z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    235. IDc   = IDc.33
+         certC = cert(x.51^x.52, x.53, z.50)
+         certT = cert(x.55, sign(<x.55, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^(x.62*inv(x.63))
+         z.2   = true
+         z.3   = verify(x.53, <x.51^x.52, z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    236. IDc   = IDc.33
+         certC = cert(x.51^x.52, sign(<x.51^x.52, z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.54, x.55, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^(x.62*inv(x.63))
+         z.2   = verify(x.55, <x.54, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.54)
+         z.5   = z.50
+    
+    237. IDc   = IDc.33
+         certC = cert(x.51^inv(x.52), x.53, z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv(x.63)
+         z     = z.44
+         z.1   = x.51^inv((x.52*x.63))
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.51^inv(x.52), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    238. IDc   = IDc.33
+         certC = cert(x.51^inv(x.52), x.53, z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.52*x.63)
+         z     = z.44
+         z.1   = x.51^x.63
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.53, <x.51^inv(x.52), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    239. IDc   = IDc.33
+         certC = cert(x.51^inv(x.52), x.53, z.50)
+         certT = cert(x.55, sign(<x.55, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.51^(x.62*inv((x.52*x.63)))
+         z.2   = true
+         z.3   = verify(x.53, <x.51^inv(x.52), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    240. IDc   = IDc.33
+         certC = cert(x.51^inv(x.52), sign(<x.51^inv(x.52), z.50, 'chip'>, ca_sk),
+                      z.50)
+         certT = cert(x.54, x.55, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.51^(x.62*inv((x.52*x.63)))
+         z.2   = verify(x.55, <x.54, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.54)
+         z.5   = z.50
+    
+    241. IDc   = IDc.33
+         certC = cert(x.51^inv((x.52*x.53)), x.54, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.52*x.62*inv(x.63))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.62*inv((x.53*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.51^inv((x.52*x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    242. IDc   = IDc.33
+         certC = cert(x.51^inv((x.52*x.53)), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.52*x.63)
+         z     = z.44
+         z.1   = x.51^(x.63*inv(x.53))
+         z.2   = true
+         z.3   = verify(x.54, <x.51^inv((x.52*x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    243. IDc   = IDc.33
+         certC = cert(x.51^inv((x.52*x.53)), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.52*inv(x.63))
+         z     = z.44
+         z.1   = x.51^inv((x.53*x.63))
+         z.2   = true
+         z.3   = verify(x.54, <x.51^inv((x.52*x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    244. IDc   = IDc.33
+         certC = cert(x.51^inv((x.52*x.53)),
+                      sign(<x.51^inv((x.52*x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.52*x.63)
+         z     = z.44
+         z.1   = x.51^(x.63*inv(x.53))
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    245. IDc   = IDc.33
+         certC = cert(x.51^inv((x.52*x.53)),
+                      sign(<x.51^inv((x.52*x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.52*inv(x.63))
+         z     = z.44
+         z.1   = x.51^inv((x.53*x.63))
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    246. IDc   = IDc.33
+         certC = cert(x.51^inv((x.52*x.53)),
+                      sign(<x.51^inv((x.52*x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, sign(<x.55, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.52*x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.51^(x.62*inv((x.53*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    247. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53), x.54, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.53*x.62*inv(x.63))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.51^(x.52*x.53), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    248. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv((x.52*x.63))
+         z     = z.44
+         z.1   = x.51^(x.53*inv(x.63))
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*x.53), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    249. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.63*inv(x.52))
+         z     = z.44
+         z.1   = x.51^(x.53*x.63)
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*x.53), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    250. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53),
+                      sign(<x.51^(x.52*x.53), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv((x.52*x.63))
+         z     = z.44
+         z.1   = x.51^(x.53*inv(x.63))
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    251. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53),
+                      sign(<x.51^(x.52*x.53), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.63*inv(x.52))
+         z     = z.44
+         z.1   = x.51^(x.53*x.63)
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    252. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53),
+                      sign(<x.51^(x.52*x.53), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, sign(<x.55, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^(x.53*x.62*inv(x.63))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    253. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv(x.54)), x.55, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv((x.53*x.63))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.52*inv((x.54*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.51^(x.52*x.53*inv(x.54)), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    254. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv(x.54)), x.55, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.54*x.63*inv(x.52))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.53*x.63)
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.51^(x.52*x.53*inv(x.54)), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    255. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv(x.54)), x.55, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.54*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.53*inv(x.63))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.51^(x.52*x.53*inv(x.54)), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    256. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv(x.54)),
+                      sign(<x.51^(x.52*x.53*inv(x.54)), z.50, 'chip'>, ca_sk), z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.54*x.62*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.53*x.62*inv(x.63))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    257. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv(x.54)),
+                      sign(<x.51^(x.52*x.53*inv(x.54)), z.50, 'chip'>, ca_sk), z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.53*x.62*inv((x.54*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    258. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv(x.54)),
+                      sign(<x.51^(x.52*x.53*inv(x.54)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv((x.53*x.63))
+         z     = z.44
+         z.1   = x.51^(x.52*inv((x.54*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    259. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv(x.54)),
+                      sign(<x.51^(x.52*x.53*inv(x.54)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.54*x.63*inv(x.52))
+         z     = z.44
+         z.1   = x.51^(x.53*x.63)
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    260. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv(x.54)),
+                      sign(<x.51^(x.52*x.53*inv(x.54)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.54*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^(x.53*inv(x.63))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    261. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv((x.54*x.55))),
+                      sign(<x.51^(x.52*x.53*inv((x.54*x.55))), z.50, 'chip'>, ca_sk), z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.54*x.63*inv(x.52))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.53*x.63*inv(x.55))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    262. IDc   = IDc.33
+         certC = cert(x.51^(x.52*x.53*inv((x.54*x.55))),
+                      sign(<x.51^(x.52*x.53*inv((x.54*x.55))), z.50, 'chip'>, ca_sk), z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.54*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.53*inv((x.55*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    263. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)), x.54, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.62*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.62*inv(x.63))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.51^(x.52*inv(x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    264. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)), x.54, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv(x.63))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.52*x.62*inv((x.53*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.51^(x.52*inv(x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    265. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)), x.54, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.62*inv((x.53*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.51^(x.52*inv(x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    266. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv(x.63)
+         z     = z.44
+         z.1   = x.51^(x.52*inv((x.53*x.63)))
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*inv(x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    267. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv((x.52*x.63))
+         z     = z.44
+         z.1   = x.51^inv((x.53*x.63))
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*inv(x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    268. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.63)
+         z     = z.44
+         z.1   = x.51^(x.52*x.63)
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*inv(x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    269. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.63*inv(x.52))
+         z     = z.44
+         z.1   = x.51^x.63
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*inv(x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    270. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)), x.54, z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^inv(x.63)
+         z.2   = true
+         z.3   = verify(x.54, <x.51^(x.52*inv(x.53)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    271. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)),
+                      sign(<x.51^(x.52*inv(x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv(x.63)
+         z     = z.44
+         z.1   = x.51^(x.52*inv((x.53*x.63)))
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    272. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)),
+                      sign(<x.51^(x.52*inv(x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = inv((x.52*x.63))
+         z     = z.44
+         z.1   = x.51^inv((x.53*x.63))
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    273. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)),
+                      sign(<x.51^(x.52*inv(x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.63)
+         z     = z.44
+         z.1   = x.51^(x.52*x.63)
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    274. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)),
+                      sign(<x.51^(x.52*inv(x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.63*inv(x.52))
+         z     = z.44
+         z.1   = x.51^x.63
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    275. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)),
+                      sign(<x.51^(x.52*inv(x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, x.56, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^inv(x.63)
+         z.2   = verify(x.56, <x.55, z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    276. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)),
+                      sign(<x.51^(x.52*inv(x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, sign(<x.55, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.62*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^(x.62*inv(x.63))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    277. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)),
+                      sign(<x.51^(x.52*inv(x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, sign(<x.55, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv(x.63))
+         z     = z.44
+         z.1   = x.51^(x.52*x.62*inv((x.53*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    278. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv(x.53)),
+                      sign(<x.51^(x.52*inv(x.53)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.55, sign(<x.55, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.62*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^(x.62*inv((x.53*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.55)
+         z.5   = z.50
+    
+    279. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))), x.55, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.63)
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.52*x.63*inv(x.54))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    280. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))), x.55, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.63*inv(x.52))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.63*inv(x.54))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    281. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))), x.55, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*inv(x.63))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.52*inv((x.54*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    282. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))), x.55, z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^inv((x.54*x.63))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    283. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))),
+                      sign(<x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>, ca_sk), z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.62*inv(x.63))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.52*x.62*inv((x.54*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    284. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))),
+                      sign(<x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>, ca_sk), z.50)
+         certT = certT.36
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.62*inv((x.52*x.63)))
+         z     = cert_id(certT.36)
+         z.1   = x.51^(x.62*inv((x.54*x.63)))
+         z.2   = verify(cert_sig(certT.36),
+                        <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, cert_pk(certT.36))
+         z.5   = z.50
+    
+    285. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))),
+                      sign(<x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.63)
+         z     = z.44
+         z.1   = x.51^(x.52*x.63*inv(x.54))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    286. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))),
+                      sign(<x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*x.63*inv(x.52))
+         z     = z.44
+         z.1   = x.51^(x.63*inv(x.54))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    287. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))),
+                      sign(<x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*inv(x.63))
+         z     = z.44
+         z.1   = x.51^(x.52*inv((x.54*x.63)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    288. IDc   = IDc.33
+         certC = cert(x.51^(x.52*inv((x.53*x.54))),
+                      sign(<x.51^(x.52*inv((x.53*x.54))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(x.56, sign(<x.56, z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = s1.41
+         skTe  = (x.53*inv((x.52*x.63)))
+         z     = z.44
+         z.1   = x.51^inv((x.54*x.63))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.41, <IDc.33, r1.39, pkTe.37>, x.56)
+         z.5   = z.50
+    
+    289. IDc   = IDc.33
+         certC = cert(x.53^x.54, x.55, z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = inv((x.54*x.64))
+         z     = z.44
+         z.1   = x.53^inv(x.64)
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.53^x.54, z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    290. IDc   = IDc.33
+         certC = cert(x.53^x.54, x.55, z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.64*inv(x.54))
+         z     = z.44
+         z.1   = x.53^x.64
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.53^x.54, z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    291. IDc   = IDc.33
+         certC = cert(x.53^x.54, x.55, z.50)
+         certT = cert(pk(x.57), sign(<pk(x.57), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.63*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^(x.63*inv(x.64))
+         z.2   = true
+         z.3   = verify(x.55, <x.53^x.54, z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    292. IDc   = IDc.33
+         certC = cert(x.53^x.54, sign(<x.53^x.54, z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.56), x.57, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.56)
+         skTe  = (x.63*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^(x.63*inv(x.64))
+         z.2   = verify(x.57, <pk(x.56), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    293. IDc   = IDc.33
+         certC = cert(x.53^inv(x.54), x.55, z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = inv(x.64)
+         z     = z.44
+         z.1   = x.53^inv((x.54*x.64))
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.53^inv(x.54), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    294. IDc   = IDc.33
+         certC = cert(x.53^inv(x.54), x.55, z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.54*x.64)
+         z     = z.44
+         z.1   = x.53^x.64
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.53^inv(x.54), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    295. IDc   = IDc.33
+         certC = cert(x.53^inv(x.54), x.55, z.50)
+         certT = cert(pk(x.57), sign(<pk(x.57), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.63*inv(x.64))
+         z     = z.44
+         z.1   = x.53^(x.63*inv((x.54*x.64)))
+         z.2   = true
+         z.3   = verify(x.55, <x.53^inv(x.54), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    296. IDc   = IDc.33
+         certC = cert(x.53^inv(x.54), sign(<x.53^inv(x.54), z.50, 'chip'>, ca_sk),
+                      z.50)
+         certT = cert(pk(x.56), x.57, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.56)
+         skTe  = (x.63*inv(x.64))
+         z     = z.44
+         z.1   = x.53^(x.63*inv((x.54*x.64)))
+         z.2   = verify(x.57, <pk(x.56), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    297. IDc   = IDc.33
+         certC = cert(x.53^inv((x.54*x.55)), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.54*x.64)
+         z     = z.44
+         z.1   = x.53^(x.64*inv(x.55))
+         z.2   = true
+         z.3   = verify(x.56, <x.53^inv((x.54*x.55)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    298. IDc   = IDc.33
+         certC = cert(x.53^inv((x.54*x.55)), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.54*inv(x.64))
+         z     = z.44
+         z.1   = x.53^inv((x.55*x.64))
+         z.2   = true
+         z.3   = verify(x.56, <x.53^inv((x.54*x.55)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    299. IDc   = IDc.33
+         certC = cert(x.53^inv((x.54*x.55)),
+                      sign(<x.53^inv((x.54*x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.54*x.64)
+         z     = z.44
+         z.1   = x.53^(x.64*inv(x.55))
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    300. IDc   = IDc.33
+         certC = cert(x.53^inv((x.54*x.55)),
+                      sign(<x.53^inv((x.54*x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.54*inv(x.64))
+         z     = z.44
+         z.1   = x.53^inv((x.55*x.64))
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    301. IDc   = IDc.33
+         certC = cert(x.53^inv((x.54*x.55)),
+                      sign(<x.53^inv((x.54*x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), sign(<pk(x.57), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.54*x.63*inv(x.64))
+         z     = z.44
+         z.1   = x.53^(x.63*inv((x.55*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    302. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = inv((x.54*x.64))
+         z     = z.44
+         z.1   = x.53^(x.55*inv(x.64))
+         z.2   = true
+         z.3   = verify(x.56, <x.53^(x.54*x.55), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    303. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.64*inv(x.54))
+         z     = z.44
+         z.1   = x.53^(x.55*x.64)
+         z.2   = true
+         z.3   = verify(x.56, <x.53^(x.54*x.55), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    304. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55),
+                      sign(<x.53^(x.54*x.55), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = inv((x.54*x.64))
+         z     = z.44
+         z.1   = x.53^(x.55*inv(x.64))
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    305. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55),
+                      sign(<x.53^(x.54*x.55), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.64*inv(x.54))
+         z     = z.44
+         z.1   = x.53^(x.55*x.64)
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    306. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55),
+                      sign(<x.53^(x.54*x.55), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), sign(<pk(x.57), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.63*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^(x.55*x.63*inv(x.64))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    307. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55*inv(x.56)), x.57, z.50)
+         certT = cert(pk(x.59), x.60, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.59)
+         skTe  = (x.56*inv(x.55))
+         z     = z.44
+         z.1   = x.53^x.54
+         z.2   = verify(x.60, <pk(x.59), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*x.55*inv(x.56)), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    308. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55*inv(x.56)),
+                      sign(<x.53^(x.54*x.55*inv(x.56)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = inv((x.55*x.64))
+         z     = z.44
+         z.1   = x.53^(x.54*inv((x.56*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    309. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55*inv(x.56)),
+                      sign(<x.53^(x.54*x.55*inv(x.56)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.56*x.64*inv(x.54))
+         z     = z.44
+         z.1   = x.53^(x.55*x.64)
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    310. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55*inv(x.56)),
+                      sign(<x.53^(x.54*x.55*inv(x.56)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.56*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^(x.55*inv(x.64))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    311. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55*inv((x.56*x.57))), x.58, z.50)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.60)
+         skTe  = (x.57*inv(x.55))
+         z     = z.44
+         z.1   = x.53^(x.54*inv(x.56))
+         z.2   = true
+         z.3   = verify(x.58, <x.53^(x.54*x.55*inv((x.56*x.57))), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    312. IDc   = IDc.33
+         certC = cert(x.53^(x.54*x.55*inv((x.56*x.57))),
+                      sign(<x.53^(x.54*x.55*inv((x.56*x.57))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.59), x.60, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.59)
+         skTe  = (x.57*inv(x.55))
+         z     = z.44
+         z.1   = x.53^(x.54*inv(x.56))
+         z.2   = verify(x.60, <pk(x.59), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    313. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = inv(x.64)
+         z     = z.44
+         z.1   = x.53^(x.54*inv((x.55*x.64)))
+         z.2   = true
+         z.3   = verify(x.56, <x.53^(x.54*inv(x.55)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    314. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = inv((x.54*x.64))
+         z     = z.44
+         z.1   = x.53^inv((x.55*x.64))
+         z.2   = true
+         z.3   = verify(x.56, <x.53^(x.54*inv(x.55)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    315. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.55*x.64)
+         z     = z.44
+         z.1   = x.53^(x.54*x.64)
+         z.2   = true
+         z.3   = verify(x.56, <x.53^(x.54*inv(x.55)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    316. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.55*x.64*inv(x.54))
+         z     = z.44
+         z.1   = x.53^x.64
+         z.2   = true
+         z.3   = verify(x.56, <x.53^(x.54*inv(x.55)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    317. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)), x.56, z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.55*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^inv(x.64)
+         z.2   = true
+         z.3   = verify(x.56, <x.53^(x.54*inv(x.55)), z.50, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    318. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)),
+                      sign(<x.53^(x.54*inv(x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = inv(x.64)
+         z     = z.44
+         z.1   = x.53^(x.54*inv((x.55*x.64)))
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    319. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)),
+                      sign(<x.53^(x.54*inv(x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = inv((x.54*x.64))
+         z     = z.44
+         z.1   = x.53^inv((x.55*x.64))
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    320. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)),
+                      sign(<x.53^(x.54*inv(x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.55*x.64)
+         z     = z.44
+         z.1   = x.53^(x.54*x.64)
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    321. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)),
+                      sign(<x.53^(x.54*inv(x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.55*x.64*inv(x.54))
+         z     = z.44
+         z.1   = x.53^x.64
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    322. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)),
+                      sign(<x.53^(x.54*inv(x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), x.58, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.55*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^inv(x.64)
+         z.2   = verify(x.58, <pk(x.57), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    323. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)),
+                      sign(<x.53^(x.54*inv(x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), sign(<pk(x.57), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.55*x.63*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^(x.63*inv(x.64))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    324. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)),
+                      sign(<x.53^(x.54*inv(x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), sign(<pk(x.57), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.63*inv(x.64))
+         z     = z.44
+         z.1   = x.53^(x.54*x.63*inv((x.55*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    325. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv(x.55)),
+                      sign(<x.53^(x.54*inv(x.55)), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.57), sign(<pk(x.57), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.57)
+         skTe  = (x.63*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^(x.63*inv((x.55*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    326. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv((skTe.42*x.55))), x.57, z.50)
+         certT = cert(pk(x.59), x.60, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.59)
+         skTe  = skTe.42
+         z     = z.44
+         z.1   = x.53^(x.54*inv(x.55))
+         z.2   = verify(x.60, <pk(x.59), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*inv((skTe.42*x.55))), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    327. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv((x.55*x.56))), x.57, z.50)
+         certT = cert(pk(x.59), x.60, z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.59)
+         skTe  = (x.56*inv(x.54))
+         z     = z.44
+         z.1   = x.53^inv(x.55)
+         z.2   = verify(x.60, <pk(x.59), z.44, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*inv((x.55*x.56))), z.50, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.50
+    
+    328. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv((x.55*x.56))),
+                      sign(<x.53^(x.54*inv((x.55*x.56))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.55*x.64)
+         z     = z.44
+         z.1   = x.53^(x.54*x.64*inv(x.56))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    329. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv((x.55*x.56))),
+                      sign(<x.53^(x.54*inv((x.55*x.56))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.55*x.64*inv(x.54))
+         z     = z.44
+         z.1   = x.53^(x.64*inv(x.56))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    330. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv((x.55*x.56))),
+                      sign(<x.53^(x.54*inv((x.55*x.56))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.55*inv(x.64))
+         z     = z.44
+         z.1   = x.53^(x.54*inv((x.56*x.64)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    331. IDc   = IDc.33
+         certC = cert(x.53^(x.54*inv((x.55*x.56))),
+                      sign(<x.53^(x.54*inv((x.55*x.56))), z.50, 'chip'>, ca_sk), z.50)
+         certT = cert(pk(x.58), sign(<pk(x.58), z.44, 'terminal'>, ca_sk), z.44)
+         pkTe  = pkTe.37
+         r1    = r1.39
+         s1    = sign(<IDc.33, r1.39, pkTe.37>, x.58)
+         skTe  = (x.55*inv((x.54*x.64)))
+         z     = z.44
+         z.1   = x.53^inv((x.56*x.64))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.50
+    
+    332. IDc   = IDc.34
+         certC = cert(x.52^x.53, x.54, z.51)
+         certT = cert(x.56, x.57, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.64*inv(x.65))
+         z.2   = verify(x.57, <x.56, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.52^x.53, z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.56)
+         z.5   = z.51
+    
+    333. IDc   = IDc.34
+         certC = cert(x.52^inv(x.53), x.54, z.51)
+         certT = cert(x.56, x.57, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.52^(x.64*inv((x.53*x.65)))
+         z.2   = verify(x.57, <x.56, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.54, <x.52^inv(x.53), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.56)
+         z.5   = z.51
+    
+    334. IDc   = IDc.34
+         certC = cert(x.52^inv((x.53*x.54)), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.53*x.65)
+         z     = z.45
+         z.1   = x.52^(x.65*inv(x.54))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^inv((x.53*x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    335. IDc   = IDc.34
+         certC = cert(x.52^inv((x.53*x.54)), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.53*inv(x.65))
+         z     = z.45
+         z.1   = x.52^inv((x.54*x.65))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^inv((x.53*x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    336. IDc   = IDc.34
+         certC = cert(x.52^inv((x.53*x.54)), x.55, z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.53*x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.52^(x.64*inv((x.54*x.65)))
+         z.2   = true
+         z.3   = verify(x.55, <x.52^inv((x.53*x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    337. IDc   = IDc.34
+         certC = cert(x.52^inv((x.53*x.54)),
+                      sign(<x.52^inv((x.53*x.54)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.56, x.57, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.53*x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.52^(x.64*inv((x.54*x.65)))
+         z.2   = verify(x.57, <x.56, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.56)
+         z.5   = z.51
+    
+    338. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = inv((x.53*x.65))
+         z     = z.45
+         z.1   = x.52^(x.54*inv(x.65))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*x.54), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    339. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.65*inv(x.53))
+         z     = z.45
+         z.1   = x.52^(x.54*x.65)
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*x.54), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    340. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54), x.55, z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.54*x.64*inv(x.65))
+         z.2   = true
+         z.3   = verify(x.55, <x.52^(x.53*x.54), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    341. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54),
+                      sign(<x.52^(x.53*x.54), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.56, x.57, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.54*x.64*inv(x.65))
+         z.2   = verify(x.57, <x.56, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.56)
+         z.5   = z.51
+    
+    342. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)), x.56, z.51)
+         certT = certT.37
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*x.64*inv((x.53*x.65)))
+         z     = cert_id(certT.37)
+         z.1   = x.52^(x.54*x.64*inv(x.65))
+         z.2   = verify(cert_sig(certT.37),
+                        <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, cert_pk(certT.37))
+         z.5   = z.51
+    
+    343. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)), x.56, z.51)
+         certT = certT.37
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv((x.53*x.65)))
+         z     = cert_id(certT.37)
+         z.1   = x.52^(x.54*x.64*inv((x.55*x.65)))
+         z.2   = verify(cert_sig(certT.37),
+                        <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, cert_pk(certT.37))
+         z.5   = z.51
+    
+    344. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)), x.56, z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = inv((x.54*x.65))
+         z     = z.45
+         z.1   = x.52^(x.53*inv((x.55*x.65)))
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    345. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)), x.56, z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*x.65*inv(x.53))
+         z     = z.45
+         z.1   = x.52^(x.54*x.65)
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    346. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)), x.56, z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.54*inv(x.65))
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    347. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)),
+                      sign(<x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = inv((x.54*x.65))
+         z     = z.45
+         z.1   = x.52^(x.53*inv((x.55*x.65)))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    348. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)),
+                      sign(<x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*x.65*inv(x.53))
+         z     = z.45
+         z.1   = x.52^(x.54*x.65)
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    349. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)),
+                      sign(<x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.54*inv(x.65))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    350. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)),
+                      sign(<x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.54*x.64*inv(x.65))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    351. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv(x.55)),
+                      sign(<x.52^(x.53*x.54*inv(x.55)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.54*x.64*inv((x.55*x.65)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    352. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv((x.55*x.56))), x.57, z.51)
+         certT = certT.37
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*x.65*inv(x.53))
+         z     = cert_id(certT.37)
+         z.1   = x.52^(x.54*x.65*inv(x.56))
+         z.2   = verify(cert_sig(certT.37),
+                        <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.52^(x.53*x.54*inv((x.55*x.56))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, cert_pk(certT.37))
+         z.5   = z.51
+    
+    353. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv((x.55*x.56))), x.57, z.51)
+         certT = certT.37
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*inv((x.53*x.65)))
+         z     = cert_id(certT.37)
+         z.1   = x.52^(x.54*inv((x.56*x.65)))
+         z.2   = verify(cert_sig(certT.37),
+                        <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.52^(x.53*x.54*inv((x.55*x.56))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, cert_pk(certT.37))
+         z.5   = z.51
+    
+    354. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv((x.55*x.56))),
+                      sign(<x.52^(x.53*x.54*inv((x.55*x.56))), z.51, 'chip'>, ca_sk), z.51)
+         certT = certT.37
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*x.64*inv((x.53*x.65)))
+         z     = cert_id(certT.37)
+         z.1   = x.52^(x.54*x.64*inv((x.56*x.65)))
+         z.2   = verify(cert_sig(certT.37),
+                        <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, cert_pk(certT.37))
+         z.5   = z.51
+    
+    355. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv((x.55*x.56))),
+                      sign(<x.52^(x.53*x.54*inv((x.55*x.56))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*x.65*inv(x.53))
+         z     = z.45
+         z.1   = x.52^(x.54*x.65*inv(x.56))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    356. IDc   = IDc.34
+         certC = cert(x.52^(x.53*x.54*inv((x.55*x.56))),
+                      sign(<x.52^(x.53*x.54*inv((x.55*x.56))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.55*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.54*inv((x.56*x.65)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    357. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = inv(x.65)
+         z     = z.45
+         z.1   = x.52^(x.53*inv((x.54*x.65)))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*inv(x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    358. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = inv((x.53*x.65))
+         z     = z.45
+         z.1   = x.52^inv((x.54*x.65))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*inv(x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    359. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.65)
+         z     = z.45
+         z.1   = x.52^(x.53*x.65)
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*inv(x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    360. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.65*inv(x.53))
+         z     = z.45
+         z.1   = x.52^x.65
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*inv(x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    361. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)), x.55, z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^inv(x.65)
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.55, <x.52^(x.53*inv(x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    362. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)), x.55, z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.64*inv(x.65))
+         z.2   = true
+         z.3   = verify(x.55, <x.52^(x.53*inv(x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    363. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)), x.55, z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.52^(x.53*x.64*inv((x.54*x.65)))
+         z.2   = true
+         z.3   = verify(x.55, <x.52^(x.53*inv(x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    364. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)), x.55, z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.64*inv((x.54*x.65)))
+         z.2   = true
+         z.3   = verify(x.55, <x.52^(x.53*inv(x.54)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    365. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)),
+                      sign(<x.52^(x.53*inv(x.54)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.56, x.57, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.64*inv(x.65))
+         z.2   = verify(x.57, <x.56, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.56)
+         z.5   = z.51
+    
+    366. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)),
+                      sign(<x.52^(x.53*inv(x.54)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.56, x.57, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.52^(x.53*x.64*inv((x.54*x.65)))
+         z.2   = verify(x.57, <x.56, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.56)
+         z.5   = z.51
+    
+    367. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv(x.54)),
+                      sign(<x.52^(x.53*inv(x.54)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.56, x.57, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.64*inv((x.54*x.65)))
+         z.2   = verify(x.57, <x.56, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.56)
+         z.5   = z.51
+    
+    368. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))), x.56, z.51)
+         certT = certT.37
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.64*inv(x.65))
+         z     = cert_id(certT.37)
+         z.1   = x.52^(x.53*x.64*inv((x.55*x.65)))
+         z.2   = verify(cert_sig(certT.37),
+                        <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, cert_pk(certT.37))
+         z.5   = z.51
+    
+    369. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))), x.56, z.51)
+         certT = certT.37
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.64*inv((x.53*x.65)))
+         z     = cert_id(certT.37)
+         z.1   = x.52^(x.64*inv((x.55*x.65)))
+         z.2   = verify(cert_sig(certT.37),
+                        <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, cert_pk(certT.37))
+         z.5   = z.51
+    
+    370. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))), x.56, z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.65)
+         z     = z.45
+         z.1   = x.52^(x.53*x.65*inv(x.55))
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    371. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))), x.56, z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.65*inv(x.53))
+         z     = z.45
+         z.1   = x.52^(x.65*inv(x.55))
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    372. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))), x.56, z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*inv(x.65))
+         z     = z.45
+         z.1   = x.52^(x.53*inv((x.55*x.65)))
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    373. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))), x.56, z.51)
+         certT = cert(x.58, sign(<x.58, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^inv((x.55*x.65))
+         z.2   = true
+         z.3   = verify(x.56, <x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.58)
+         z.5   = z.51
+    
+    374. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))),
+                      sign(<x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.65)
+         z     = z.45
+         z.1   = x.52^(x.53*x.65*inv(x.55))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    375. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))),
+                      sign(<x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.65*inv(x.53))
+         z     = z.45
+         z.1   = x.52^(x.65*inv(x.55))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    376. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))),
+                      sign(<x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*inv(x.65))
+         z     = z.45
+         z.1   = x.52^(x.53*inv((x.55*x.65)))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    377. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))),
+                      sign(<x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, x.58, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^inv((x.55*x.65))
+         z.2   = verify(x.58, <x.57, z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    378. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))),
+                      sign(<x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.64*inv(x.65))
+         z     = z.45
+         z.1   = x.52^(x.53*x.64*inv((x.55*x.65)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    379. IDc   = IDc.34
+         certC = cert(x.52^(x.53*inv((x.54*x.55))),
+                      sign(<x.52^(x.53*inv((x.54*x.55))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(x.57, sign(<x.57, z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = s1.42
+         skTe  = (x.54*x.64*inv((x.53*x.65)))
+         z     = z.45
+         z.1   = x.52^(x.64*inv((x.55*x.65)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.42, <IDc.34, r1.40, pkTe.38>, x.57)
+         z.5   = z.51
+    
+    380. IDc   = IDc.34
+         certC = cert(x.54^x.55, x.56, z.51)
+         certT = cert(pk(x.58), x.59, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.58)
+         skTe  = (x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.65*inv(x.66))
+         z.2   = verify(x.59, <pk(x.58), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.54^x.55, z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    381. IDc   = IDc.34
+         certC = cert(x.54^inv(x.55), x.56, z.51)
+         certT = cert(pk(x.58), x.59, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.58)
+         skTe  = (x.65*inv(x.66))
+         z     = z.45
+         z.1   = x.54^(x.65*inv((x.55*x.66)))
+         z.2   = verify(x.59, <pk(x.58), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.54^inv(x.55), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    382. IDc   = IDc.34
+         certC = cert(x.54^inv((x.55*x.56)), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.55*x.66)
+         z     = z.45
+         z.1   = x.54^(x.66*inv(x.56))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^inv((x.55*x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    383. IDc   = IDc.34
+         certC = cert(x.54^inv((x.55*x.56)), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.55*inv(x.66))
+         z     = z.45
+         z.1   = x.54^inv((x.56*x.66))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^inv((x.55*x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    384. IDc   = IDc.34
+         certC = cert(x.54^inv((x.55*x.56)), x.57, z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.55*x.65*inv(x.66))
+         z     = z.45
+         z.1   = x.54^(x.65*inv((x.56*x.66)))
+         z.2   = true
+         z.3   = verify(x.57, <x.54^inv((x.55*x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    385. IDc   = IDc.34
+         certC = cert(x.54^inv((x.55*x.56)),
+                      sign(<x.54^inv((x.55*x.56)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.58), x.59, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.58)
+         skTe  = (x.55*x.65*inv(x.66))
+         z     = z.45
+         z.1   = x.54^(x.65*inv((x.56*x.66)))
+         z.2   = verify(x.59, <pk(x.58), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    386. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = inv((x.55*x.66))
+         z     = z.45
+         z.1   = x.54^(x.56*inv(x.66))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^(x.55*x.56), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    387. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.66*inv(x.55))
+         z     = z.45
+         z.1   = x.54^(x.56*x.66)
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^(x.55*x.56), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    388. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56), x.57, z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.56*x.65*inv(x.66))
+         z.2   = true
+         z.3   = verify(x.57, <x.54^(x.55*x.56), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    389. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56),
+                      sign(<x.54^(x.55*x.56), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.58), x.59, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.58)
+         skTe  = (x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.56*x.65*inv(x.66))
+         z.2   = verify(x.59, <pk(x.58), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    390. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = inv((x.56*x.66))
+         z     = z.45
+         z.1   = x.54^(x.55*inv((x.57*x.66)))
+         z.2   = true
+         z.3   = verify(x.58, <x.54^(x.55*x.56*inv(x.57)), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    391. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = (x.57*x.66*inv(x.55))
+         z     = z.45
+         z.1   = x.54^(x.56*x.66)
+         z.2   = true
+         z.3   = verify(x.58, <x.54^(x.55*x.56*inv(x.57)), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    392. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = (x.57*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.56*inv(x.66))
+         z.2   = true
+         z.3   = verify(x.58, <x.54^(x.55*x.56*inv(x.57)), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    393. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv(x.57)),
+                      sign(<x.54^(x.55*x.56*inv(x.57)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = inv((x.56*x.66))
+         z     = z.45
+         z.1   = x.54^(x.55*inv((x.57*x.66)))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    394. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv(x.57)),
+                      sign(<x.54^(x.55*x.56*inv(x.57)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.57*x.66*inv(x.55))
+         z     = z.45
+         z.1   = x.54^(x.56*x.66)
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    395. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv(x.57)),
+                      sign(<x.54^(x.55*x.56*inv(x.57)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.57*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.56*inv(x.66))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    396. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv(x.57)),
+                      sign(<x.54^(x.55*x.56*inv(x.57)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.57*x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.56*x.65*inv(x.66))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    397. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv(x.57)),
+                      sign(<x.54^(x.55*x.56*inv(x.57)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.56*x.65*inv((x.57*x.66)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    398. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv((x.57*x.58))), x.59, z.51)
+         certT = cert(pk(x.61), x.62, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.61)
+         skTe  = (x.58*inv(x.56))
+         z     = z.45
+         z.1   = x.54^(x.55*inv(x.57))
+         z.2   = verify(x.62, <pk(x.61), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.54^(x.55*x.56*inv((x.57*x.58))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    399. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv((x.57*x.58))),
+                      sign(<x.54^(x.55*x.56*inv((x.57*x.58))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = (x.57*x.66*inv(x.55))
+         z     = z.45
+         z.1   = x.54^(x.56*x.66*inv(x.58))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    400. IDc   = IDc.34
+         certC = cert(x.54^(x.55*x.56*inv((x.57*x.58))),
+                      sign(<x.54^(x.55*x.56*inv((x.57*x.58))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = (x.57*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.56*inv((x.58*x.66)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    401. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = inv(x.66)
+         z     = z.45
+         z.1   = x.54^(x.55*inv((x.56*x.66)))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^(x.55*inv(x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    402. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = inv((x.55*x.66))
+         z     = z.45
+         z.1   = x.54^inv((x.56*x.66))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^(x.55*inv(x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    403. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*x.66)
+         z     = z.45
+         z.1   = x.54^(x.55*x.66)
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^(x.55*inv(x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    404. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*x.66*inv(x.55))
+         z     = z.45
+         z.1   = x.54^x.66
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^(x.55*inv(x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    405. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)), x.57, z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^inv(x.66)
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.54^(x.55*inv(x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    406. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)), x.57, z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.65*inv(x.66))
+         z.2   = true
+         z.3   = verify(x.57, <x.54^(x.55*inv(x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    407. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)), x.57, z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.65*inv(x.66))
+         z     = z.45
+         z.1   = x.54^(x.55*x.65*inv((x.56*x.66)))
+         z.2   = true
+         z.3   = verify(x.57, <x.54^(x.55*inv(x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    408. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)), x.57, z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.65*inv((x.56*x.66)))
+         z.2   = true
+         z.3   = verify(x.57, <x.54^(x.55*inv(x.56)), z.51, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    409. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)),
+                      sign(<x.54^(x.55*inv(x.56)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.58), x.59, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.58)
+         skTe  = (x.56*x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.65*inv(x.66))
+         z.2   = verify(x.59, <pk(x.58), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    410. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)),
+                      sign(<x.54^(x.55*inv(x.56)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.58), x.59, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.58)
+         skTe  = (x.65*inv(x.66))
+         z     = z.45
+         z.1   = x.54^(x.55*x.65*inv((x.56*x.66)))
+         z.2   = verify(x.59, <pk(x.58), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    411. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv(x.56)),
+                      sign(<x.54^(x.55*inv(x.56)), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.58), x.59, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.58)
+         skTe  = (x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.65*inv((x.56*x.66)))
+         z.2   = verify(x.59, <pk(x.58), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    412. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = (x.56*x.66)
+         z     = z.45
+         z.1   = x.54^(x.55*x.66*inv(x.57))
+         z.2   = true
+         z.3   = verify(x.58, <x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    413. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = (x.56*x.66*inv(x.55))
+         z     = z.45
+         z.1   = x.54^(x.66*inv(x.57))
+         z.2   = true
+         z.3   = verify(x.58, <x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    414. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = (x.56*inv(x.66))
+         z     = z.45
+         z.1   = x.54^(x.55*inv((x.57*x.66)))
+         z.2   = true
+         z.3   = verify(x.58, <x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    415. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.51)
+         certT = cert(pk(x.60), sign(<pk(x.60), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.60)
+         skTe  = (x.56*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^inv((x.57*x.66))
+         z.2   = true
+         z.3   = verify(x.58, <x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.51
+    
+    416. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))),
+                      sign(<x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*x.66)
+         z     = z.45
+         z.1   = x.54^(x.55*x.66*inv(x.57))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    417. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))),
+                      sign(<x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*x.66*inv(x.55))
+         z     = z.45
+         z.1   = x.54^(x.66*inv(x.57))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    418. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))),
+                      sign(<x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*inv(x.66))
+         z     = z.45
+         z.1   = x.54^(x.55*inv((x.57*x.66)))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    419. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))),
+                      sign(<x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), x.60, z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^inv((x.57*x.66))
+         z.2   = verify(x.60, <pk(x.59), z.45, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    420. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))),
+                      sign(<x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*x.65*inv(x.66))
+         z     = z.45
+         z.1   = x.54^(x.55*x.65*inv((x.57*x.66)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    421. IDc   = IDc.34
+         certC = cert(x.54^(x.55*inv((x.56*x.57))),
+                      sign(<x.54^(x.55*inv((x.56*x.57))), z.51, 'chip'>, ca_sk), z.51)
+         certT = cert(pk(x.59), sign(<pk(x.59), z.45, 'terminal'>, ca_sk), z.45)
+         pkTe  = pkTe.38
+         r1    = r1.40
+         s1    = sign(<IDc.34, r1.40, pkTe.38>, x.59)
+         skTe  = (x.56*x.65*inv((x.55*x.66)))
+         z     = z.45
+         z.1   = x.54^(x.65*inv((x.57*x.66)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.51
+    
+    422. IDc   = IDc.35
+         certC = cert(x.53^inv((x.54*x.55)), x.56, z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.54*x.66*inv(x.67))
+         z     = z.46
+         z.1   = x.53^(x.66*inv((x.55*x.67)))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.53^inv((x.54*x.55)), z.52, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    423. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55), x.56, z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*x.66*inv(x.67))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.53^(x.54*x.55), z.52, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    424. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv(x.56)), x.57, z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = inv((x.55*x.67))
+         z     = z.46
+         z.1   = x.53^(x.54*inv((x.56*x.67)))
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*x.55*inv(x.56)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    425. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv(x.56)), x.57, z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*x.67*inv(x.54))
+         z     = z.46
+         z.1   = x.53^(x.55*x.67)
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*x.55*inv(x.56)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    426. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv(x.56)), x.57, z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*inv(x.67))
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*x.55*inv(x.56)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    427. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv(x.56)), x.57, z.52)
+         certT = cert(x.59, sign(<x.59, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*x.66*inv(x.67))
+         z.2   = true
+         z.3   = verify(x.57, <x.53^(x.54*x.55*inv(x.56)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    428. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv(x.56)), x.57, z.52)
+         certT = cert(x.59, sign(<x.59, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*x.66*inv((x.56*x.67)))
+         z.2   = true
+         z.3   = verify(x.57, <x.53^(x.54*x.55*inv(x.56)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    429. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv(x.56)),
+                      sign(<x.53^(x.54*x.55*inv(x.56)), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*x.66*inv(x.67))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    430. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv(x.56)),
+                      sign(<x.53^(x.54*x.55*inv(x.56)), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*x.66*inv((x.56*x.67)))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    431. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv((x.56*x.57))), x.58, z.52)
+         certT = certT.38
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*x.66*inv((x.54*x.67)))
+         z     = cert_id(certT.38)
+         z.1   = x.53^(x.55*x.66*inv((x.57*x.67)))
+         z.2   = verify(cert_sig(certT.38),
+                        <cert_pk(certT.38), cert_id(certT.38), 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.53^(x.54*x.55*inv((x.56*x.57))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, cert_pk(certT.38))
+         z.5   = z.52
+    
+    432. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv((x.56*x.57))), x.58, z.52)
+         certT = cert(x.60, sign(<x.60, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*x.67*inv(x.54))
+         z     = z.46
+         z.1   = x.53^(x.55*x.67*inv(x.57))
+         z.2   = true
+         z.3   = verify(x.58, <x.53^(x.54*x.55*inv((x.56*x.57))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.60)
+         z.5   = z.52
+    
+    433. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv((x.56*x.57))), x.58, z.52)
+         certT = cert(x.60, sign(<x.60, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*inv((x.57*x.67)))
+         z.2   = true
+         z.3   = verify(x.58, <x.53^(x.54*x.55*inv((x.56*x.57))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.60)
+         z.5   = z.52
+    
+    434. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv((x.56*x.57))),
+                      sign(<x.53^(x.54*x.55*inv((x.56*x.57))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*x.67*inv(x.54))
+         z     = z.46
+         z.1   = x.53^(x.55*x.67*inv(x.57))
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    435. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv((x.56*x.57))),
+                      sign(<x.53^(x.54*x.55*inv((x.56*x.57))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*inv((x.57*x.67)))
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    436. IDc   = IDc.35
+         certC = cert(x.53^(x.54*x.55*inv((x.56*x.57))),
+                      sign(<x.53^(x.54*x.55*inv((x.56*x.57))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(x.59, sign(<x.59, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.56*x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.55*x.66*inv((x.57*x.67)))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    437. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv(x.55)), x.56, z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.66*inv(x.67))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.53^(x.54*inv(x.55)), z.52, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    438. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv(x.55)), x.56, z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.66*inv(x.67))
+         z     = z.46
+         z.1   = x.53^(x.54*x.66*inv((x.55*x.67)))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.53^(x.54*inv(x.55)), z.52, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    439. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv(x.55)), x.56, z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.66*inv((x.55*x.67)))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.56, <x.53^(x.54*inv(x.55)), z.52, 'chip'>, pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    440. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv((x.55*x.56))), x.57, z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*x.67)
+         z     = z.46
+         z.1   = x.53^(x.54*x.67*inv(x.56))
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*inv((x.55*x.56))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    441. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv((x.55*x.56))), x.57, z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*x.67*inv(x.54))
+         z     = z.46
+         z.1   = x.53^(x.67*inv(x.56))
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*inv((x.55*x.56))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    442. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv((x.55*x.56))), x.57, z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*inv(x.67))
+         z     = z.46
+         z.1   = x.53^(x.54*inv((x.56*x.67)))
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*inv((x.55*x.56))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    443. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv((x.55*x.56))), x.57, z.52)
+         certT = cert(x.59, x.60, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^inv((x.56*x.67))
+         z.2   = verify(x.60, <x.59, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.57, <x.53^(x.54*inv((x.55*x.56))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    444. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv((x.55*x.56))), x.57, z.52)
+         certT = cert(x.59, sign(<x.59, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*x.66*inv(x.67))
+         z     = z.46
+         z.1   = x.53^(x.54*x.66*inv((x.56*x.67)))
+         z.2   = true
+         z.3   = verify(x.57, <x.53^(x.54*inv((x.55*x.56))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    445. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv((x.55*x.56))), x.57, z.52)
+         certT = cert(x.59, sign(<x.59, z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.66*inv((x.56*x.67)))
+         z.2   = true
+         z.3   = verify(x.57, <x.53^(x.54*inv((x.55*x.56))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.59)
+         z.5   = z.52
+    
+    446. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv((x.55*x.56))),
+                      sign(<x.53^(x.54*inv((x.55*x.56))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*x.66*inv(x.67))
+         z     = z.46
+         z.1   = x.53^(x.54*x.66*inv((x.56*x.67)))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    447. IDc   = IDc.35
+         certC = cert(x.53^(x.54*inv((x.55*x.56))),
+                      sign(<x.53^(x.54*inv((x.55*x.56))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(x.58, x.59, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = s1.43
+         skTe  = (x.55*x.66*inv((x.54*x.67)))
+         z     = z.46
+         z.1   = x.53^(x.66*inv((x.56*x.67)))
+         z.2   = verify(x.59, <x.58, z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.43, <IDc.35, r1.41, pkTe.39>, x.58)
+         z.5   = z.52
+    
+    448. IDc   = IDc.35
+         certC = cert(x.55^inv((x.56*x.57)), x.58, z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.56*x.67*inv(x.68))
+         z     = z.46
+         z.1   = x.55^(x.67*inv((x.57*x.68)))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.55^inv((x.56*x.57)), z.52, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    449. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57), x.58, z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*x.67*inv(x.68))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.55^(x.56*x.57), z.52, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    450. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv(x.58)), x.59, z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = inv((x.57*x.68))
+         z     = z.46
+         z.1   = x.55^(x.56*inv((x.58*x.68)))
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.55^(x.56*x.57*inv(x.58)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    451. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv(x.58)), x.59, z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.58*x.68*inv(x.56))
+         z     = z.46
+         z.1   = x.55^(x.57*x.68)
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.55^(x.56*x.57*inv(x.58)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    452. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv(x.58)), x.59, z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.58*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*inv(x.68))
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.55^(x.56*x.57*inv(x.58)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    453. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv(x.58)), x.59, z.52)
+         certT = cert(pk(x.61), sign(<pk(x.61), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.58*x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*x.67*inv(x.68))
+         z.2   = true
+         z.3   = verify(x.59, <x.55^(x.56*x.57*inv(x.58)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    454. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv(x.58)), x.59, z.52)
+         certT = cert(pk(x.61), sign(<pk(x.61), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*x.67*inv((x.58*x.68)))
+         z.2   = true
+         z.3   = verify(x.59, <x.55^(x.56*x.57*inv(x.58)), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    455. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv(x.58)),
+                      sign(<x.55^(x.56*x.57*inv(x.58)), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.58*x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*x.67*inv(x.68))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.52
+    
+    456. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv(x.58)),
+                      sign(<x.55^(x.56*x.57*inv(x.58)), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*x.67*inv((x.58*x.68)))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.52
+    
+    457. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))), x.60, z.52)
+         certT = cert(pk(x.62), sign(<pk(x.62), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.62)
+         skTe  = (x.58*x.68*inv(x.56))
+         z     = z.46
+         z.1   = x.55^(x.57*x.68*inv(x.59))
+         z.2   = true
+         z.3   = verify(x.60, <x.55^(x.56*x.57*inv((x.58*x.59))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    458. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))), x.60, z.52)
+         certT = cert(pk(x.62), sign(<pk(x.62), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.62)
+         skTe  = (x.58*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*inv((x.59*x.68)))
+         z.2   = true
+         z.3   = verify(x.60, <x.55^(x.56*x.57*inv((x.58*x.59))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    459. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))),
+                      sign(<x.55^(x.56*x.57*inv((x.58*x.59))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.58*x.68*inv(x.56))
+         z     = z.46
+         z.1   = x.55^(x.57*x.68*inv(x.59))
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.52
+    
+    460. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))),
+                      sign(<x.55^(x.56*x.57*inv((x.58*x.59))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.58*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*inv((x.59*x.68)))
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.52
+    
+    461. IDc   = IDc.35
+         certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))),
+                      sign(<x.55^(x.56*x.57*inv((x.58*x.59))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(pk(x.61), sign(<pk(x.61), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.58*x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.57*x.67*inv((x.59*x.68)))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.52
+    
+    462. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv(x.57)), x.58, z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.57*x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.67*inv(x.68))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.55^(x.56*inv(x.57)), z.52, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    463. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv(x.57)), x.58, z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.67*inv(x.68))
+         z     = z.46
+         z.1   = x.55^(x.56*x.67*inv((x.57*x.68)))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.55^(x.56*inv(x.57)), z.52, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    464. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv(x.57)), x.58, z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.67*inv((x.57*x.68)))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.55^(x.56*inv(x.57)), z.52, 'chip'>, pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    465. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv((x.57*x.58))), x.59, z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.57*x.68)
+         z     = z.46
+         z.1   = x.55^(x.56*x.68*inv(x.58))
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.55^(x.56*inv((x.57*x.58))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    466. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv((x.57*x.58))), x.59, z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.57*x.68*inv(x.56))
+         z     = z.46
+         z.1   = x.55^(x.68*inv(x.58))
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.55^(x.56*inv((x.57*x.58))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    467. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv((x.57*x.58))), x.59, z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.57*inv(x.68))
+         z     = z.46
+         z.1   = x.55^(x.56*inv((x.58*x.68)))
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.55^(x.56*inv((x.57*x.58))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    468. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv((x.57*x.58))), x.59, z.52)
+         certT = cert(pk(x.61), x.62, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.57*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^inv((x.58*x.68))
+         z.2   = verify(x.62, <pk(x.61), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.55^(x.56*inv((x.57*x.58))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    469. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv((x.57*x.58))), x.59, z.52)
+         certT = cert(pk(x.61), sign(<pk(x.61), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.57*x.67*inv(x.68))
+         z     = z.46
+         z.1   = x.55^(x.56*x.67*inv((x.58*x.68)))
+         z.2   = true
+         z.3   = verify(x.59, <x.55^(x.56*inv((x.57*x.58))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    470. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv((x.57*x.58))), x.59, z.52)
+         certT = cert(pk(x.61), sign(<pk(x.61), z.46, 'terminal'>, ca_sk), z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.61)
+         skTe  = (x.57*x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.67*inv((x.58*x.68)))
+         z.2   = true
+         z.3   = verify(x.59, <x.55^(x.56*inv((x.57*x.58))), z.52, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.52
+    
+    471. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv((x.57*x.58))),
+                      sign(<x.55^(x.56*inv((x.57*x.58))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.57*x.67*inv(x.68))
+         z     = z.46
+         z.1   = x.55^(x.56*x.67*inv((x.58*x.68)))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.52
+    
+    472. IDc   = IDc.35
+         certC = cert(x.55^(x.56*inv((x.57*x.58))),
+                      sign(<x.55^(x.56*inv((x.57*x.58))), z.52, 'chip'>, ca_sk), z.52)
+         certT = cert(pk(x.60), x.61, z.46)
+         pkTe  = pkTe.39
+         r1    = r1.41
+         s1    = sign(<IDc.35, r1.41, pkTe.39>, x.60)
+         skTe  = (x.57*x.67*inv((x.56*x.68)))
+         z     = z.46
+         z.1   = x.55^(x.67*inv((x.58*x.68)))
+         z.2   = verify(x.61, <pk(x.60), z.46, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.52
+    
+    473. IDc   = IDc.36
+         certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.53)
+         certT = cert(x.60, x.61, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = s1.44
+         skTe  = (x.57*x.68*inv((x.55*x.69)))
+         z     = z.47
+         z.1   = x.54^(x.56*x.68*inv(x.69))
+         z.2   = verify(x.61, <x.60, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.54^(x.55*x.56*inv(x.57)), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.44, <IDc.36, r1.42, pkTe.40>, x.60)
+         z.5   = z.53
+    
+    474. IDc   = IDc.36
+         certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.53)
+         certT = cert(x.60, x.61, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = s1.44
+         skTe  = (x.68*inv((x.55*x.69)))
+         z     = z.47
+         z.1   = x.54^(x.56*x.68*inv((x.57*x.69)))
+         z.2   = verify(x.61, <x.60, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.54^(x.55*x.56*inv(x.57)), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.44, <IDc.36, r1.42, pkTe.40>, x.60)
+         z.5   = z.53
+    
+    475. IDc   = IDc.36
+         certC = cert(x.54^(x.55*x.56*inv((x.57*x.58))), x.59, z.53)
+         certT = cert(x.61, x.62, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = s1.44
+         skTe  = (x.57*x.69*inv(x.55))
+         z     = z.47
+         z.1   = x.54^(x.56*x.69*inv(x.58))
+         z.2   = verify(x.62, <x.61, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.54^(x.55*x.56*inv((x.57*x.58))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.44, <IDc.36, r1.42, pkTe.40>, x.61)
+         z.5   = z.53
+    
+    476. IDc   = IDc.36
+         certC = cert(x.54^(x.55*x.56*inv((x.57*x.58))), x.59, z.53)
+         certT = cert(x.61, x.62, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = s1.44
+         skTe  = (x.57*inv((x.55*x.69)))
+         z     = z.47
+         z.1   = x.54^(x.56*inv((x.58*x.69)))
+         z.2   = verify(x.62, <x.61, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.59, <x.54^(x.55*x.56*inv((x.57*x.58))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.44, <IDc.36, r1.42, pkTe.40>, x.61)
+         z.5   = z.53
+    
+    477. IDc   = IDc.36
+         certC = cert(x.54^(x.55*x.56*inv((x.57*x.58))), x.59, z.53)
+         certT = cert(x.61, sign(<x.61, z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = s1.44
+         skTe  = (x.57*x.68*inv((x.55*x.69)))
+         z     = z.47
+         z.1   = x.54^(x.56*x.68*inv((x.58*x.69)))
+         z.2   = true
+         z.3   = verify(x.59, <x.54^(x.55*x.56*inv((x.57*x.58))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.44, <IDc.36, r1.42, pkTe.40>, x.61)
+         z.5   = z.53
+    
+    478. IDc   = IDc.36
+         certC = cert(x.54^(x.55*x.56*inv((x.57*x.58))),
+                      sign(<x.54^(x.55*x.56*inv((x.57*x.58))), z.53, 'chip'>, ca_sk), z.53)
+         certT = cert(x.60, x.61, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = s1.44
+         skTe  = (x.57*x.68*inv((x.55*x.69)))
+         z     = z.47
+         z.1   = x.54^(x.56*x.68*inv((x.58*x.69)))
+         z.2   = verify(x.61, <x.60, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(s1.44, <IDc.36, r1.42, pkTe.40>, x.60)
+         z.5   = z.53
+    
+    479. IDc   = IDc.36
+         certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.53)
+         certT = cert(x.60, x.61, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = s1.44
+         skTe  = (x.56*x.68*inv(x.69))
+         z     = z.47
+         z.1   = x.54^(x.55*x.68*inv((x.57*x.69)))
+         z.2   = verify(x.61, <x.60, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.54^(x.55*inv((x.56*x.57))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.44, <IDc.36, r1.42, pkTe.40>, x.60)
+         z.5   = z.53
+    
+    480. IDc   = IDc.36
+         certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.53)
+         certT = cert(x.60, x.61, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = s1.44
+         skTe  = (x.56*x.68*inv((x.55*x.69)))
+         z     = z.47
+         z.1   = x.54^(x.68*inv((x.57*x.69)))
+         z.2   = verify(x.61, <x.60, z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.58, <x.54^(x.55*inv((x.56*x.57))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.44, <IDc.36, r1.42, pkTe.40>, x.60)
+         z.5   = z.53
+    
+    481. IDc   = IDc.36
+         certC = cert(x.56^(x.57*x.58*inv(x.59)), x.60, z.53)
+         certT = cert(pk(x.62), x.63, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = sign(<IDc.36, r1.42, pkTe.40>, x.62)
+         skTe  = (x.59*x.69*inv((x.57*x.70)))
+         z     = z.47
+         z.1   = x.56^(x.58*x.69*inv(x.70))
+         z.2   = verify(x.63, <pk(x.62), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.60, <x.56^(x.57*x.58*inv(x.59)), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.53
+    
+    482. IDc   = IDc.36
+         certC = cert(x.56^(x.57*x.58*inv(x.59)), x.60, z.53)
+         certT = cert(pk(x.62), x.63, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = sign(<IDc.36, r1.42, pkTe.40>, x.62)
+         skTe  = (x.69*inv((x.57*x.70)))
+         z     = z.47
+         z.1   = x.56^(x.58*x.69*inv((x.59*x.70)))
+         z.2   = verify(x.63, <pk(x.62), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.60, <x.56^(x.57*x.58*inv(x.59)), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.53
+    
+    483. IDc   = IDc.36
+         certC = cert(x.56^(x.57*x.58*inv((x.59*x.60))), x.61, z.53)
+         certT = cert(pk(x.63), x.64, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = sign(<IDc.36, r1.42, pkTe.40>, x.63)
+         skTe  = (x.59*x.70*inv(x.57))
+         z     = z.47
+         z.1   = x.56^(x.58*x.70*inv(x.60))
+         z.2   = verify(x.64, <pk(x.63), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.61, <x.56^(x.57*x.58*inv((x.59*x.60))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.53
+    
+    484. IDc   = IDc.36
+         certC = cert(x.56^(x.57*x.58*inv((x.59*x.60))), x.61, z.53)
+         certT = cert(pk(x.63), x.64, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = sign(<IDc.36, r1.42, pkTe.40>, x.63)
+         skTe  = (x.59*inv((x.57*x.70)))
+         z     = z.47
+         z.1   = x.56^(x.58*inv((x.60*x.70)))
+         z.2   = verify(x.64, <pk(x.63), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.61, <x.56^(x.57*x.58*inv((x.59*x.60))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.53
+    
+    485. IDc   = IDc.36
+         certC = cert(x.56^(x.57*x.58*inv((x.59*x.60))), x.61, z.53)
+         certT = cert(pk(x.63), sign(<pk(x.63), z.47, 'terminal'>, ca_sk), z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = sign(<IDc.36, r1.42, pkTe.40>, x.63)
+         skTe  = (x.59*x.69*inv((x.57*x.70)))
+         z     = z.47
+         z.1   = x.56^(x.58*x.69*inv((x.60*x.70)))
+         z.2   = true
+         z.3   = verify(x.61, <x.56^(x.57*x.58*inv((x.59*x.60))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.53
+    
+    486. IDc   = IDc.36
+         certC = cert(x.56^(x.57*x.58*inv((x.59*x.60))),
+                      sign(<x.56^(x.57*x.58*inv((x.59*x.60))), z.53, 'chip'>, ca_sk), z.53)
+         certT = cert(pk(x.62), x.63, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = sign(<IDc.36, r1.42, pkTe.40>, x.62)
+         skTe  = (x.59*x.69*inv((x.57*x.70)))
+         z     = z.47
+         z.1   = x.56^(x.58*x.69*inv((x.60*x.70)))
+         z.2   = verify(x.63, <pk(x.62), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.53
+    
+    487. IDc   = IDc.36
+         certC = cert(x.56^(x.57*inv((x.58*x.59))), x.60, z.53)
+         certT = cert(pk(x.62), x.63, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = sign(<IDc.36, r1.42, pkTe.40>, x.62)
+         skTe  = (x.58*x.69*inv(x.70))
+         z     = z.47
+         z.1   = x.56^(x.57*x.69*inv((x.59*x.70)))
+         z.2   = verify(x.63, <pk(x.62), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.60, <x.56^(x.57*inv((x.58*x.59))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.53
+    
+    488. IDc   = IDc.36
+         certC = cert(x.56^(x.57*inv((x.58*x.59))), x.60, z.53)
+         certT = cert(pk(x.62), x.63, z.47)
+         pkTe  = pkTe.40
+         r1    = r1.42
+         s1    = sign(<IDc.36, r1.42, pkTe.40>, x.62)
+         skTe  = (x.58*x.69*inv((x.57*x.70)))
+         z     = z.47
+         z.1   = x.56^(x.69*inv((x.59*x.70)))
+         z.2   = verify(x.63, <pk(x.62), z.47, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.60, <x.56^(x.57*inv((x.58*x.59))), z.53, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.53
+    
+    489. IDc   = IDc.37
+         certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))), x.60, z.54)
+         certT = cert(x.62, x.63, z.48)
+         pkTe  = pkTe.41
+         r1    = r1.43
+         s1    = s1.45
+         skTe  = (x.58*x.70*inv((x.56*x.71)))
+         z     = z.48
+         z.1   = x.55^(x.57*x.70*inv((x.59*x.71)))
+         z.2   = verify(x.63, <x.62, z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.60, <x.55^(x.56*x.57*inv((x.58*x.59))), z.54, 'chip'>,
+                        pk(ca_sk))
+         z.4   = verify(s1.45, <IDc.37, r1.43, pkTe.41>, x.62)
+         z.5   = z.54
+    
+    490. IDc   = IDc.37
+         certC = cert(x.57^(x.58*x.59*inv((x.60*x.61))), x.62, z.54)
+         certT = cert(pk(x.64), x.65, z.48)
+         pkTe  = pkTe.41
+         r1    = r1.43
+         s1    = sign(<IDc.37, r1.43, pkTe.41>, x.64)
+         skTe  = (x.60*x.71*inv((x.58*x.72)))
+         z     = z.48
+         z.1   = x.57^(x.59*x.71*inv((x.61*x.72)))
+         z.2   = verify(x.65, <pk(x.64), z.48, 'terminal'>, pk(ca_sk))
+         z.3   = verify(x.62, <x.57^(x.58*x.59*inv((x.60*x.61))), z.54, 'chip'>,
+                        pk(ca_sk))
+         z.4   = true
+         z.5   = z.54
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C), pkTe, 'g'^~skC, 
+                           ~id_c, ~r2>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, skTe, ~id_c,
+                          cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, ~ltk) ) @ #vk.10 )
+                case TA_RESPONSE_T
+                solve( !KU( ~r2 ) @ #vk.15 )
+                  case CA_FINISH_C
+                  solve( !KU( ~id_c ) @ #vk.30 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~r1 ) @ #vk.31 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T)
+                             ) @ #vk.17 )
+                        case CA_Sign_ltk
+                        solve( !KU( mac('g'^~skTe, kdf_mac('g'^(~skTe*~ltk.1), ~r2)) ) @ #vk.21 )
+                          case CA_FINISH_C
+                          solve( !KU( cert('g'^~ltk.1, sign(<'g'^~ltk.1, $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.29 )
+                            case CA_INIT_C
+                            solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.35 )
+                              case TA_RESPONSE_T
+                              solve( !KU( cert(pk(~skT), sign(<pk(~skT), z, 'terminal'>, ca_sk), z)
+                                     ) @ #vk.38 )
+                                case CA_Sign_ltk
+                                solve( !KU( ~id_c.1 ) @ #vk.41 )
+                                  case TA_CHALLENGE_C
+                                  solve( !KU( ~r1.1 ) @ #vk.42 )
+                                    case TA_CHALLENGE_C
+                                    solve( !KU( 'g'^~skTe ) @ #vk.22 )
+                                      case TA_INIT_T
+                                      solve( !KU( 'g'^~skTe.1 ) @ #vk.42 )
+                                        case TA_INIT_T
+                                        SOLVED // trace found
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C), pkTe, 'g'^~skC, 
+                           ~id_c, ~r2>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, skTe, ~id_c,
+                          cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case CA_FINISH_C
+                solve( CAInitC( <$C, iid.1>, cert(x, x.1, $T), pkTe, id_c.1, r1.1, r2.1
+                       ) ▶₁ #i2 )
+                  case CA_INIT_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( <kdf_enc(z, ~r2.1), kdf_mac(z, ~r2.1)>,
+                                        <cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                         cert('g'^~ltk.2, sign(<'g'^~ltk.2, $C, 'chip'>, ca_sk), $C), pkTe, 
+                                         'g'^~skC, ~id_c.1, ~r2.1>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( CAInitT( <$T, iid.3>, skTe.1, ~id_c.1,
+                                        cert('g'^~skC, sign(<'g'^~skC, $C, 'chip'>, ca_sk), $C)
+                               ) ▶₁ #j2 )
+                          case CA_INIT_T
+                          solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, ~ltk) ) @ #vk.14 )
+                              case TA_RESPONSE_T
+                              solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe.1>, ~ltk.2) ) @ #vk.44 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~r2 ) @ #vk.20 )
+                                  case CA_FINISH_C
+                                  solve( !KU( ~id_c ) @ #vk.41 )
+                                    case TA_CHALLENGE_C
+                                    solve( !KU( ~r2.1 ) @ #vk.46 )
+                                      case CA_FINISH_C
+                                      solve( !KU( ~id_c.1 ) @ #vk.50 )
+                                        case TA_CHALLENGE_C
+                                        solve( !KU( ~r1 ) @ #vk.44 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( ~r1.1 ) @ #vk.51 )
+                                            case TA_CHALLENGE_C
+                                            solve( !KU( cert(pk(~ltk),
+                                                             sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T)
+                                                   ) @ #vk.28 )
+                                              case CA_Sign_ltk
+                                              solve( !KU( mac('g'^~skTe, kdf_mac('g'^(~skTe*~ltk.1), ~r2))
+                                                     ) @ #vk.32 )
+                                                case CA_FINISH_C
+                                                solve( !KU( cert('g'^~ltk.1,
+                                                                 sign(<'g'^~ltk.1, $C, 'chip'>, ca_sk), $C)
+                                                       ) @ #vk.43 )
+                                                  case CA_Sign_ltk
+                                                  solve( !KU( 'g'^~skTe ) @ #vk.22 )
+                                                    case TA_INIT_T
+                                                    solve( !KU( cert(pk(~skT),
+                                                                     sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                                     $T)
+                                                           ) @ #vk.48 )
+                                                      case CA_Sign_ltk
+                                                      solve( !KU( mac('g'^~skTe.1,
+                                                                      kdf_mac('g'^(~skC*~skTe.1), ~r2.1))
+                                                             ) @ #vk.49 )
+                                                        case CA_FINISH_C
+                                                        solve( !KU( cert('g'^~skC,
+                                                                         sign(<'g'^~skC, $C, 'chip'>, ca_sk),
+                                                                         $C)
+                                                               ) @ #vk.50 )
+                                                          case CA_Sign_ltk
+                                                          solve( !KU( 'g'^~skTe.1 ) @ #vk.50 )
+                                                            case TA_INIT_T
+                                                            SOLVED // trace found
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z.1, sign(<z.1, z.2, 'chip'>, ca_sk), z.2), 'g'^~skTe, z.1, id_c, r2
+                      >,
+                      C, 'chip', T.1
+           ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>,
+                      cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 'g'^~skTe,
+                      id_c, r1, r2
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert('g'^~skC, sign(<'g'^~skC, z, 'chip'>, ca_sk), z),
+                        'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z.1, sign(<z.1, z.2, 'chip'>, ca_sk), z.2), 'g'^~skTe, z.1, id_c, r2
+                      >,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, ~skTe, id_c,
+                      cert(z.1, sign(<z.1, C, 'chip'>, ca_sk), C)
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !KU( mac('g'^~skTe, kdf_mac(z, r2)) ) @ #vk.3 )
+          case CA_FINISH_C
+          solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe>, x) ) @ #vk.29 )
+            case c_sign
+            solve( !KU( cert('g'^~skC, sign(<'g'^~skC, C, 'chip'>, ca_sk), C)
+                   ) @ #vk.14 )
+              case CA_Sign_ltk
+              solve( !KU( cert(pk(x), sign(<pk(x), z, 'terminal'>, ca_sk), z)
+                     ) @ #vk.33 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.35 )
+                  case Corrupt_ltk
+                  solve( !KU( ~r2 ) @ #vk.10 )
+                    case CA_FINISH_C
+                    solve( !KU( ~id_c.1 ) @ #vk.36 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~r1 ) @ #vk.37 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( 'g'^~skTe ) @ #vk.28 )
+                          case CA_INIT_T
+                          SOLVED // trace found
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z.1, sign(<z.1, z.2, 'chip'>, ca_sk), z.2), 'g'^~skTe, z.1, id_c, r2
+                      >,
+                      C, 'chip', T.1
+           ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>,
+                      cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 'g'^~skTe,
+                      id_c, r1, r2
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert('g'^~skC, sign(<'g'^~skC, z, 'chip'>, ca_sk), z),
+                        'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z.1, sign(<z.1, z.2, 'chip'>, ca_sk), z.2), 'g'^~skTe, z.1, id_c, r2
+                      >,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, ~skTe, id_c,
+                      cert(z.1, sign(<z.1, C, 'chip'>, ca_sk), C)
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !KU( mac('g'^~skTe, kdf_mac(z, r2)) ) @ #vk.3 )
+          case CA_FINISH_C
+          solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe>, x) ) @ #vk.29 )
+            case TA_RESPONSE_T
+            solve( !KU( cert('g'^~skC, sign(<'g'^~skC, C, 'chip'>, ca_sk), C)
+                   ) @ #vk.14 )
+              case CA_Sign_ltk
+              solve( !KU( cert(pk(~skT), sign(<pk(~skT), z, 'terminal'>, ca_sk), z)
+                     ) @ #vk.31 )
+                case CA_Sign_ltk
+                solve( !KU( ~r2 ) @ #vk.8 )
+                  case CA_FINISH_C
+                  solve( !KU( ~id_c ) @ #vk.20 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~r1 ) @ #vk.21 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( 'g'^~skTe ) @ #vk.24 )
+                        case TA_INIT_T
+                        SOLVED // trace found
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z.1, sign(<z.1, z.2, 'chip'>, ca_sk), z.2), 'g'^~skTe, z.1, id_c, r2
+                      >,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_C
+      by contradiction /* from formulas */
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, ~skTe, id_c,
+                      cert(z.1, sign(<z.1, B, 'chip'>, ca_sk), B)
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !KU( mac('g'^~skTe, kdf_mac(z, r2)) ) @ #vk.3 )
+          case CA_FINISH_C
+          solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe>, x) ) @ #vk.29 )
+            case TA_RESPONSE_T
+            solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B, 'chip'>, ca_sk), B)
+                   ) @ #vk.14 )
+              case CA_INIT_C
+              by contradiction /* from formulas */
+            next
+              case CA_Sign_ltk
+              by contradiction /* from formulas */
+            next
+              case c_cert
+              solve( !KU( sign(<'g'^~skC, B, 'chip'>, ca_sk) ) @ #vk.34 )
+                case CA_INIT_C
+                by contradiction /* from formulas */
+              next
+                case CA_Sign_ltk
+                by contradiction /* from formulas */
+              next
+                case c_sign
+                by solve( !KU( ca_sk ) @ #vk.38 )
+              qed
+            qed
+          next
+            case c_sign
+            solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B, 'chip'>, ca_sk), B)
+                   ) @ #vk.14 )
+              case CA_INIT_C
+              by contradiction /* from formulas */
+            next
+              case CA_Sign_ltk
+              by contradiction /* from formulas */
+            next
+              case c_cert
+              solve( !KU( sign(<'g'^~skC, B, 'chip'>, ca_sk) ) @ #vk.39 )
+                case CA_INIT_C
+                by contradiction /* from formulas */
+              next
+                case CA_Sign_ltk
+                by contradiction /* from formulas */
+              next
+                case c_sign
+                by solve( !KU( ca_sk ) @ #vk.43 )
+              qed
+            qed
+          qed
+        next
+          case c_mac
+          solve( !KU( cert(z.1, sign(<z.1, B, 'chip'>, ca_sk), B) ) @ #vk.13 )
+            case CA_INIT_C
+            solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.22 )
+              case TA_RESPONSE_T
+              solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.22 )
+                case Reveal_session
+                solve( splitEqs(2) )
+                  case split_case_1
+                  by contradiction /* cyclic */
+                next
+                  case split_case_2
+                  solve( !KU( cert(pk(~skT), sign(<pk(~skT), z, 'terminal'>, ca_sk), z)
+                         ) @ #vk.37 )
+                    case CA_Sign_ltk
+                    solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.42 )
+                      case c_mac
+                      by contradiction /* cyclic */
+                    qed
+                  next
+                    case TA_INIT_T
+                    solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.42 )
+                      case c_mac
+                      by contradiction /* cyclic */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(~skT), z, 'terminal'>, ca_sk) ) @ #vk.48 )
+                      case CA_Sign_ltk
+                      solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.43 )
+                        case c_mac
+                        by contradiction /* cyclic */
+                      qed
+                    next
+                      case TA_INIT_T
+                      solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.43 )
+                        case c_mac
+                        by contradiction /* cyclic */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.52 )
+                    qed
+                  qed
+                qed
+              next
+                case c_kdf_mac
+                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.36 )
+                  case CA_INIT_C
+                  by solve( !KU( ~skTe ) @ #vk.37 )
+                next
+                  case CA_INIT_T
+                  solve( !KU( ~ltk ) @ #vk.37 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case Generate_chip_key_pair
+                  by solve( !KU( ~skTe ) @ #vk.37 )
+                next
+                  case TA_INIT_T
+                  solve( !KU( ~ltk ) @ #vk.37 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_exp
+                  solve( !KU( ~ltk ) @ #vk.39 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              qed
+            next
+              case c_sign
+              solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.21 )
+                case Reveal_session
+                solve( splitEqs(2) )
+                  case split_case_1
+                  by contradiction /* cyclic */
+                next
+                  case split_case_2
+                  solve( !KU( cert(pk(x), sign(<pk(x), z, 'terminal'>, ca_sk), z)
+                         ) @ #vk.35 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.2 ) @ #vk.40 )
+                      case Corrupt_ltk
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.43 )
+                        case c_mac
+                        by contradiction /* cyclic */
+                      qed
+                    qed
+                  next
+                    case TA_INIT_T
+                    solve( !KU( ~ltk.2 ) @ #vk.40 )
+                      case Corrupt_ltk
+                      solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.43 )
+                        case c_mac
+                        by contradiction /* cyclic */
+                      qed
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(x), z, 'terminal'>, ca_sk) ) @ #vk.49 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.2 ) @ #vk.41 )
+                        case Corrupt_ltk
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.44 )
+                          case c_mac
+                          by contradiction /* cyclic */
+                        qed
+                      qed
+                    next
+                      case TA_INIT_T
+                      solve( !KU( ~ltk.2 ) @ #vk.41 )
+                        case Corrupt_ltk
+                        solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.44 )
+                          case c_mac
+                          by contradiction /* cyclic */
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.53 )
+                    qed
+                  qed
+                qed
+              next
+                case c_kdf_mac
+                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.37 )
+                  case CA_INIT_C
+                  by solve( !KU( ~skTe ) @ #vk.38 )
+                next
+                  case CA_INIT_T
+                  solve( !KU( ~ltk ) @ #vk.38 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case Generate_chip_key_pair
+                  by solve( !KU( ~skTe ) @ #vk.38 )
+                next
+                  case TA_INIT_T
+                  solve( !KU( ~ltk ) @ #vk.38 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_exp
+                  solve( !KU( ~ltk ) @ #vk.40 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              qed
+            qed
+          next
+            case CA_Sign_ltk
+            solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.20 )
+              case Reveal_session
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* cyclic */
+              next
+                case split_case_2
+                solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.27 )
+                  case c_mac
+                  by contradiction /* cyclic */
+                qed
+              qed
+            next
+              case c_kdf_mac
+              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.21 )
+                case CA_INIT_T
+                solve( !KU( ~ltk ) @ #vk.22 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case CA_Sign_ltk
+                by solve( !KU( ~skTe ) @ #vk.22 )
+              next
+                case Generate_chip_key_pair
+                by solve( !KU( ~skTe ) @ #vk.22 )
+              next
+                case TA_INIT_T
+                solve( !KU( ~ltk ) @ #vk.22 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_exp
+                solve( !KU( ~ltk ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              qed
+            qed
+          next
+            case c_cert
+            solve( !KU( sign(<z.1, B, 'chip'>, ca_sk) ) @ #vk.22 )
+              case CA_INIT_C
+              solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.25 )
+                case TA_RESPONSE_T
+                solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.23 )
+                  case Reveal_session
+                  solve( splitEqs(2) )
+                    case split_case_1
+                    by contradiction /* cyclic */
+                  next
+                    case split_case_2
+                    solve( !KU( cert(pk(~skT), sign(<pk(~skT), z, 'terminal'>, ca_sk), z)
+                           ) @ #vk.40 )
+                      case CA_Sign_ltk
+                      solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.45 )
+                        case c_mac
+                        by contradiction /* cyclic */
+                      qed
+                    next
+                      case TA_INIT_T
+                      solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.45 )
+                        case c_mac
+                        by contradiction /* cyclic */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(~skT), z, 'terminal'>, ca_sk) ) @ #vk.51 )
+                        case CA_Sign_ltk
+                        solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.46 )
+                          case c_mac
+                          by contradiction /* cyclic */
+                        qed
+                      next
+                        case TA_INIT_T
+                        solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.46 )
+                          case c_mac
+                          by contradiction /* cyclic */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.55 )
+                      qed
+                    qed
+                  qed
+                next
+                  case c_kdf_mac
+                  solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.39 )
+                    case CA_INIT_C
+                    by solve( !KU( ~skTe ) @ #vk.40 )
+                  next
+                    case CA_INIT_T
+                    solve( !KU( ~ltk ) @ #vk.40 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case Generate_chip_key_pair
+                    by solve( !KU( ~skTe ) @ #vk.40 )
+                  next
+                    case TA_INIT_T
+                    solve( !KU( ~ltk ) @ #vk.40 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_exp
+                    solve( !KU( ~ltk ) @ #vk.42 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.22 )
+                  case Reveal_session
+                  solve( splitEqs(2) )
+                    case split_case_1
+                    by contradiction /* cyclic */
+                  next
+                    case split_case_2
+                    solve( !KU( cert(pk(x), sign(<pk(x), z, 'terminal'>, ca_sk), z)
+                           ) @ #vk.38 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.3 ) @ #vk.43 )
+                        case Corrupt_ltk
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.46 )
+                          case c_mac
+                          by contradiction /* cyclic */
+                        qed
+                      qed
+                    next
+                      case TA_INIT_T
+                      solve( !KU( ~ltk.3 ) @ #vk.43 )
+                        case Corrupt_ltk
+                        solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.46 )
+                          case c_mac
+                          by contradiction /* cyclic */
+                        qed
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(x), z, 'terminal'>, ca_sk) ) @ #vk.52 )
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.3 ) @ #vk.44 )
+                          case Corrupt_ltk
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.47 )
+                            case c_mac
+                            by contradiction /* cyclic */
+                          qed
+                        qed
+                      next
+                        case TA_INIT_T
+                        solve( !KU( ~ltk.3 ) @ #vk.44 )
+                          case Corrupt_ltk
+                          solve( !KU( mac('g'^~skTe.2, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.47 )
+                            case c_mac
+                            by contradiction /* cyclic */
+                          qed
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.56 )
+                      qed
+                    qed
+                  qed
+                next
+                  case c_kdf_mac
+                  solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.40 )
+                    case CA_INIT_C
+                    by solve( !KU( ~skTe ) @ #vk.41 )
+                  next
+                    case CA_INIT_T
+                    solve( !KU( ~ltk ) @ #vk.41 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case Generate_chip_key_pair
+                    by solve( !KU( ~skTe ) @ #vk.41 )
+                  next
+                    case TA_INIT_T
+                    solve( !KU( ~ltk ) @ #vk.41 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_exp
+                    solve( !KU( ~ltk ) @ #vk.43 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  qed
+                qed
+              qed
+            next
+              case CA_Sign_ltk
+              solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.21 )
+                case Reveal_session
+                solve( splitEqs(2) )
+                  case split_case_1
+                  by contradiction /* cyclic */
+                next
+                  case split_case_2
+                  solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.30 )
+                    case c_mac
+                    by contradiction /* cyclic */
+                  qed
+                qed
+              next
+                case c_kdf_mac
+                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.24 )
+                  case CA_INIT_T
+                  solve( !KU( ~ltk ) @ #vk.25 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case CA_Sign_ltk
+                  by solve( !KU( ~skTe ) @ #vk.25 )
+                next
+                  case Generate_chip_key_pair
+                  by solve( !KU( ~skTe ) @ #vk.25 )
+                next
+                  case TA_INIT_T
+                  solve( !KU( ~ltk ) @ #vk.25 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_exp
+                  solve( !KU( ~ltk ) @ #vk.27 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              qed
+            next
+              case c_sign
+              by solve( !KU( ca_sk ) @ #vk.26 )
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>, sid2, $C, 'chip', B
+                   ) @ #j )
+              case CA_FINISH_C
+              solve( CAInitC( <$C, iid.1>, certT, pkTe.1, id_c.1, r1.1, ~r2 ) ▶₁ #j )
+                case CA_INIT_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, sid2, $T, 'terminal',
+                            B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, skTe.1, id_c.1, certC ) ▶₁ #j )
+              case CA_INIT_T
+              solve( !Cert( $T, certT, 'terminal' ) ▶₂ #j )
+                case CA_Sign_ltk
+                solve( !KU( mac('g'^~skTe, kdf_mac(z, r2)) ) @ #vk.4 )
+                  case CA_FINISH_C
+                  solve( splitEqs(1) )
+                    case split_case_1
+                    by contradiction /* cyclic */
+                  next
+                    case split_case_2
+                    solve( !KU( sign(<~id_c.2, ~r1.2, 'g'^~skTe>, x) ) @ #vk.40 )
+                      case TA_RESPONSE_T
+                      solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B, 'chip'>, ca_sk), B)
+                             ) @ #vk.20 )
+                        case CA_INIT_C
+                        solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.46 )
+                          case TA_RESPONSE_T
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.32 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.57 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.61 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.30 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.58 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.62 )
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.27 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.28 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.47 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<'g'^~skC, B, 'chip'>, ca_sk) ) @ #vk.45 )
+                          case CA_INIT_C
+                          solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.49 )
+                            case TA_RESPONSE_T
+                            solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.30 )
+                              case c_mac
+                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.33 )
+                                case c_cert
+                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                       ) @ #vk.60 )
+                                  case c_sign
+                                  by solve( !KU( ca_sk ) @ #vk.63 )
+                                qed
+                              qed
+                            qed
+                          next
+                            case c_sign
+                            solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                              case c_mac
+                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.31 )
+                                case c_cert
+                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                       ) @ #vk.61 )
+                                  case c_sign
+                                  by solve( !KU( ca_sk ) @ #vk.64 )
+                                qed
+                              qed
+                            qed
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.29 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.50 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.53 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.49 )
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B, 'chip'>, ca_sk), B)
+                             ) @ #vk.20 )
+                        case CA_INIT_C
+                        solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.51 )
+                          case TA_RESPONSE_T
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.32 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.62 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.66 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.30 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.63 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.67 )
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.27 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.28 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.52 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.56 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<'g'^~skC, B, 'chip'>, ca_sk) ) @ #vk.50 )
+                          case CA_INIT_C
+                          solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.54 )
+                            case TA_RESPONSE_T
+                            solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.30 )
+                              case c_mac
+                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.33 )
+                                case c_cert
+                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                       ) @ #vk.65 )
+                                  case c_sign
+                                  by solve( !KU( ca_sk ) @ #vk.68 )
+                                qed
+                              qed
+                            qed
+                          next
+                            case c_sign
+                            solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                              case c_mac
+                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.31 )
+                                case c_cert
+                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                       ) @ #vk.66 )
+                                  case c_sign
+                                  by solve( !KU( ca_sk ) @ #vk.69 )
+                                qed
+                              qed
+                            qed
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.29 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.55 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.58 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.54 )
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_mac
+                  solve( !KU( cert(z.1, sign(<z.1, B, 'chip'>, ca_sk), B) ) @ #vk.19 )
+                    case CA_INIT_C
+                    solve( splitEqs(1) )
+                      case split_case_1
+                      by contradiction /* cyclic */
+                    next
+                      case split_case_2
+                      solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.33 )
+                        case TA_RESPONSE_T
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.27 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.30 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.49 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.53 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_sign
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.26 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.28 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.50 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.54 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( splitEqs(1) )
+                      case split_case_1
+                      by contradiction /* cyclic */
+                    next
+                      case split_case_2
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.25 )
+                        case c_mac
+                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk), $A)
+                               ) @ #vk.26 )
+                          case c_cert
+                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk)
+                                 ) @ #vk.34 )
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.38 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<z.1, B, 'chip'>, ca_sk) ) @ #vk.33 )
+                      case CA_INIT_C
+                      solve( splitEqs(1) )
+                        case split_case_1
+                        by contradiction /* cyclic */
+                      next
+                        case split_case_2
+                        solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.36 )
+                          case TA_RESPONSE_T
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.31 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.52 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.55 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.27 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.29 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.53 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.56 )
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( splitEqs(1) )
+                        case split_case_1
+                        by contradiction /* cyclic */
+                      next
+                        case split_case_2
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.26 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk), $A)
+                                 ) @ #vk.27 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk)
+                                   ) @ #vk.37 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.40 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.37 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>, sid2, $C, 'chip', B
+                   ) @ #j )
+              case CA_FINISH_C
+              solve( CAInitC( <$C, iid.1>, certT, pkTe.1, id_c.1, r1.1, ~r2 ) ▶₁ #j )
+                case CA_INIT_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, sid2, $T, 'terminal',
+                            B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, skTe.1, id_c.1, certC ) ▶₁ #j )
+              case CA_INIT_T
+              solve( !Cert( $T, certT, 'terminal' ) ▶₂ #j )
+                case CA_Sign_ltk
+                solve( !KU( mac('g'^~skTe, kdf_mac(z, r2)) ) @ #vk.4 )
+                  case CA_FINISH_C
+                  solve( splitEqs(1) )
+                    case split_case_1
+                    by contradiction /* cyclic */
+                  next
+                    case split_case_2
+                    solve( !KU( sign(<~id_c.2, ~r1.2, 'g'^~skTe>, x) ) @ #vk.40 )
+                      case TA_RESPONSE_T
+                      solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B, 'chip'>, ca_sk), B)
+                             ) @ #vk.20 )
+                        case CA_INIT_C
+                        solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.46 )
+                          case TA_RESPONSE_T
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.32 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.57 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.61 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.30 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.58 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.62 )
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.27 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.28 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.47 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<'g'^~skC, B, 'chip'>, ca_sk) ) @ #vk.45 )
+                          case CA_INIT_C
+                          solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.49 )
+                            case TA_RESPONSE_T
+                            solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.30 )
+                              case c_mac
+                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.33 )
+                                case c_cert
+                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                       ) @ #vk.60 )
+                                  case c_sign
+                                  by solve( !KU( ca_sk ) @ #vk.63 )
+                                qed
+                              qed
+                            qed
+                          next
+                            case c_sign
+                            solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                              case c_mac
+                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.31 )
+                                case c_cert
+                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                       ) @ #vk.61 )
+                                  case c_sign
+                                  by solve( !KU( ca_sk ) @ #vk.64 )
+                                qed
+                              qed
+                            qed
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.29 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.50 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.53 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.49 )
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B, 'chip'>, ca_sk), B)
+                             ) @ #vk.20 )
+                        case CA_INIT_C
+                        solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.51 )
+                          case TA_RESPONSE_T
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.32 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.62 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.66 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.30 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.63 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.67 )
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.27 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.28 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.52 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.56 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<'g'^~skC, B, 'chip'>, ca_sk) ) @ #vk.50 )
+                          case CA_INIT_C
+                          solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.54 )
+                            case TA_RESPONSE_T
+                            solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.30 )
+                              case c_mac
+                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.33 )
+                                case c_cert
+                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                       ) @ #vk.65 )
+                                  case c_sign
+                                  by solve( !KU( ca_sk ) @ #vk.68 )
+                                qed
+                              qed
+                            qed
+                          next
+                            case c_sign
+                            solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                              case c_mac
+                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.31 )
+                                case c_cert
+                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                       ) @ #vk.66 )
+                                  case c_sign
+                                  by solve( !KU( ca_sk ) @ #vk.69 )
+                                qed
+                              qed
+                            qed
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.29 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.55 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.58 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.54 )
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_mac
+                  solve( !KU( cert(z.1, sign(<z.1, B, 'chip'>, ca_sk), B) ) @ #vk.19 )
+                    case CA_INIT_C
+                    solve( splitEqs(1) )
+                      case split_case_1
+                      by contradiction /* cyclic */
+                    next
+                      case split_case_2
+                      solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.33 )
+                        case TA_RESPONSE_T
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.27 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.30 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.49 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.53 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_sign
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.26 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.28 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.50 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.54 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( splitEqs(1) )
+                      case split_case_1
+                      by contradiction /* cyclic */
+                    next
+                      case split_case_2
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.25 )
+                        case c_mac
+                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk), $A)
+                               ) @ #vk.26 )
+                          case c_cert
+                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk)
+                                 ) @ #vk.34 )
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.38 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<z.1, B, 'chip'>, ca_sk) ) @ #vk.33 )
+                      case CA_INIT_C
+                      solve( splitEqs(1) )
+                        case split_case_1
+                        by contradiction /* cyclic */
+                      next
+                        case split_case_2
+                        solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.36 )
+                          case TA_RESPONSE_T
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.28 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.31 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.52 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.55 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.27 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.29 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.53 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.56 )
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( splitEqs(1) )
+                        case split_case_1
+                        by contradiction /* cyclic */
+                      next
+                        case split_case_2
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.26 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk), $A)
+                                 ) @ #vk.27 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk)
+                                   ) @ #vk.37 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.40 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.37 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_C
+    solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
+      case CA_INIT_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>, sid2, $C, 'chip', B
+                 ) @ #j )
+            case CA_FINISH_C
+            solve( CAInitC( <$C, iid.1>, certT, pkTe.1, id_c.1, r1.1, ~r2 ) ▶₁ #j )
+              case CA_INIT_C
+              by contradiction /* from formulas */
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case CA_FINISH_T
+    solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #i )
+      case CA_INIT_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, sid2, $T, 'terminal',
+                          B
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, skTe.1, id_c.1, certC ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, certT, 'terminal' ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( mac('g'^~skTe, kdf_mac(z, r2)) ) @ #vk.4 )
+                case CA_FINISH_C
+                solve( splitEqs(1) )
+                  case split_case_1
+                  by contradiction /* from formulas */
+                next
+                  case split_case_2
+                  solve( !KU( sign(<~id_c.2, ~r1.2, 'g'^~skTe>, x) ) @ #vk.40 )
+                    case TA_RESPONSE_T
+                    solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B, 'chip'>, ca_sk), B)
+                           ) @ #vk.20 )
+                      case CA_INIT_C
+                      solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.46 )
+                        case TA_RESPONSE_T
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.32 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.57 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.61 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_sign
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.30 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.58 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.62 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.27 )
+                        case c_mac
+                        solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                         sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                               ) @ #vk.28 )
+                          case c_cert
+                          solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                 ) @ #vk.47 )
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.51 )
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<'g'^~skC, B, 'chip'>, ca_sk) ) @ #vk.45 )
+                        case CA_INIT_C
+                        solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.49 )
+                          case TA_RESPONSE_T
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.30 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.33 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.60 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.63 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.31 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.61 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.64 )
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.29 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.50 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.53 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.49 )
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B, 'chip'>, ca_sk), B)
+                           ) @ #vk.20 )
+                      case CA_INIT_C
+                      solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.51 )
+                        case TA_RESPONSE_T
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.32 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.62 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.66 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_sign
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.30 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.63 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.67 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.27 )
+                        case c_mac
+                        solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                         sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                               ) @ #vk.28 )
+                          case c_cert
+                          solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                 ) @ #vk.52 )
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.56 )
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<'g'^~skC, B, 'chip'>, ca_sk) ) @ #vk.50 )
+                        case CA_INIT_C
+                        solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.54 )
+                          case TA_RESPONSE_T
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.30 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.33 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.65 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.68 )
+                              qed
+                            qed
+                          qed
+                        next
+                          case c_sign
+                          solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.29 )
+                            case c_mac
+                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.31 )
+                              case c_cert
+                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                     ) @ #vk.66 )
+                                case c_sign
+                                by solve( !KU( ca_sk ) @ #vk.69 )
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skC*~skTe), ~r2)) ) @ #vk.28 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.29 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.55 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.58 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.54 )
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case c_mac
+                solve( !KU( cert(z.1, sign(<z.1, B, 'chip'>, ca_sk), B) ) @ #vk.19 )
+                  case CA_INIT_C
+                  solve( splitEqs(1) )
+                    case split_case_1
+                    by contradiction /* from formulas */
+                  next
+                    case split_case_2
+                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.33 )
+                      case TA_RESPONSE_T
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.27 )
+                        case c_mac
+                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                               ) @ #vk.30 )
+                          case c_cert
+                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                 ) @ #vk.49 )
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.53 )
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.26 )
+                        case c_mac
+                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                               ) @ #vk.28 )
+                          case c_cert
+                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                 ) @ #vk.50 )
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.54 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case CA_Sign_ltk
+                  solve( splitEqs(1) )
+                    case split_case_1
+                    by contradiction /* from formulas */
+                  next
+                    case split_case_2
+                    solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.25 )
+                      case c_mac
+                      solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                       sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk), $A)
+                             ) @ #vk.26 )
+                        case c_cert
+                        solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk)
+                               ) @ #vk.34 )
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.38 )
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_cert
+                  solve( !KU( sign(<z.1, B, 'chip'>, ca_sk) ) @ #vk.33 )
+                    case CA_INIT_C
+                    solve( splitEqs(1) )
+                      case split_case_1
+                      by contradiction /* from formulas */
+                    next
+                      case split_case_2
+                      solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.36 )
+                        case TA_RESPONSE_T
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.28 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.31 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.52 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.55 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_sign
+                        solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.27 )
+                          case c_mac
+                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk), $C)
+                                 ) @ #vk.29 )
+                            case c_cert
+                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C, 'chip'>, ca_sk)
+                                   ) @ #vk.53 )
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.56 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( splitEqs(1) )
+                      case split_case_1
+                      by contradiction /* from formulas */
+                    next
+                      case split_case_2
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~ltk*~skTe), r2)) ) @ #vk.26 )
+                        case c_mac
+                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
+                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk), $A)
+                               ) @ #vk.27 )
+                          case c_cert
+                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A, 'chip'>, ca_sk)
+                                 ) @ #vk.37 )
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.40 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    by solve( !KU( ca_sk ) @ #vk.37 )
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C), pkTe, 'g'^~skC, 
+                           ~id_c, ~r2>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, skTe, ~id_c,
+                          cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C), pkTe, 'g'^~skC, 
+                           ~id_c, ~r2>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, skTe, ~id_c,
+                          cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, ~ltk) ) @ #vk.13 )
+                case TA_RESPONSE_T
+                solve( !KU( kdf_enc('g'^(~skTe*~ltk.1), ~r2) ) @ #vk.12 )
+                  case Reveal_session
+                  solve( splitEqs(2) )
+                    case split_case_1
+                    by contradiction /* from formulas */
+                  next
+                    case split_case_2
+                    solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skTe*~ltk.1), ~r2))
+                           ) @ #vk.42 )
+                      case c_mac
+                      solve( !KU( kdf_mac('g'^(~skTe*~ltk.1), ~r2) ) @ #vk.14 )
+                        case Reveal_session
+                        by contradiction /* cyclic */
+                      next
+                        case c_kdf_mac
+                        solve( !KU( 'g'^(~skTe*~ltk.1) ) @ #vk.48 )
+                          case CA_INIT_C
+                          by solve( !KU( ~skTe ) @ #vk.52 )
+                        next
+                          case CA_INIT_T
+                          by contradiction /* cyclic */
+                        next
+                          case CA_Sign_ltk
+                          by solve( !KU( ~skTe ) @ #vk.49 )
+                        next
+                          case Generate_chip_key_pair
+                          by solve( !KU( ~skTe ) @ #vk.49 )
+                        next
+                          case TA_INIT_T
+                          solve( !KU( ~ltk.1 ) @ #vk.49 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_exp
+                          by solve( !KU( ~skTe ) @ #vk.51 )
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_kdf_enc
+                  solve( !KU( 'g'^(~skTe*~ltk.1) ) @ #vk.36 )
+                    case CA_INIT_C
+                    by solve( !KU( ~skTe ) @ #vk.40 )
+                  next
+                    case CA_INIT_T
+                    by contradiction /* cyclic */
+                  next
+                    case CA_Sign_ltk
+                    by solve( !KU( ~skTe ) @ #vk.37 )
+                  next
+                    case Generate_chip_key_pair
+                    by solve( !KU( ~skTe ) @ #vk.37 )
+                  next
+                    case TA_INIT_T
+                    solve( !KU( ~ltk.1 ) @ #vk.37 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_exp
+                    by solve( !KU( ~skTe ) @ #vk.39 )
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk ) @ #vk.38 )
+                  case Corrupt_ltk
+                  solve( !KU( kdf_enc('g'^(~skTe*~ltk.1), ~r2) ) @ #vk.15 )
+                    case Reveal_session
+                    solve( splitEqs(2) )
+                      case split_case_1
+                      by contradiction /* from formulas */
+                    next
+                      case split_case_2
+                      solve( !KU( mac('g'^~skTe.1, kdf_mac('g'^(~skTe*~ltk.1), ~r2))
+                             ) @ #vk.46 )
+                        case c_mac
+                        solve( !KU( kdf_mac('g'^(~skTe*~ltk.1), ~r2) ) @ #vk.17 )
+                          case Reveal_session
+                          by contradiction /* cyclic */
+                        next
+                          case c_kdf_mac
+                          solve( !KU( 'g'^(~skTe*~ltk.1) ) @ #vk.52 )
+                            case CA_INIT_C
+                            by solve( !KU( ~skTe ) @ #vk.56 )
+                          next
+                            case CA_INIT_T
+                            by contradiction /* cyclic */
+                          next
+                            case CA_Sign_ltk
+                            by solve( !KU( ~skTe ) @ #vk.53 )
+                          next
+                            case Generate_chip_key_pair
+                            by solve( !KU( ~skTe ) @ #vk.53 )
+                          next
+                            case TA_INIT_T
+                            solve( !KU( ~ltk.1 ) @ #vk.53 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_exp
+                            by solve( !KU( ~skTe ) @ #vk.55 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_kdf_enc
+                    solve( !KU( 'g'^(~skTe*~ltk.1) ) @ #vk.40 )
+                      case CA_INIT_C
+                      by solve( !KU( ~skTe ) @ #vk.44 )
+                    next
+                      case CA_INIT_T
+                      by contradiction /* cyclic */
+                    next
+                      case CA_Sign_ltk
+                      by solve( !KU( ~skTe ) @ #vk.41 )
+                    next
+                      case Generate_chip_key_pair
+                      by solve( !KU( ~skTe ) @ #vk.41 )
+                    next
+                      case TA_INIT_T
+                      solve( !KU( ~ltk.1 ) @ #vk.41 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_exp
+                      by solve( !KU( ~skTe ) @ #vk.43 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), pkTe, id_c, r1
+       ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !KU( ~iid ) @ #vk.6 )
+    case CA_INIT_C
+    by contradiction /* cyclic */
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₁ #i )
+    case Generate_chip_key_pair
+    solve( !KU( cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T)
+           ) @ #vk.1 )
+      case CA_Sign_ltk
+      solve( !KU( sign(<IDc, r1, pkTe>, ~ltk) ) @ #vk.11 )
+        case c_sign
+        solve( !KU( ~ltk ) @ #vk.18 )
+          case Corrupt_ltk
+          solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.15 )
+            case CA_Sign_ltk
+            solve( splitEqs(0) )
+              case split_case_1
+              solve( !KU( mac(pkTe, kdf_mac(pkTe^~ltk.2, r2)) ) @ #vk.18 )
+                case c_mac
+                solve( !KU( kdf_mac(pkTe^~ltk.2, r2) ) @ #vk.19 )
+                  case c_kdf_mac
+                  solve( !KU( pkTe^~ltk.2 ) @ #vk.20 )
+                    case CA_Sign_ltk
+                    SOLVED // trace found
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !KU( cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T)
+         ) @ #vk.1 )
+    case CA_Sign_ltk
+    solve( !KU( sign(<IDc, r1, pkTe>, ~ltk) ) @ #vk.11 )
+      case TA_RESPONSE_T
+      by contradiction /* from formulas */
+    next
+      case c_sign
+      solve( !KU( ~ltk ) @ #vk.21 )
+        case Corrupt_ltk
+        by contradiction /* from formulas */
+      qed
+    qed
+  next
+    case TA_INIT_T
+    by contradiction /* from formulas */
+  next
+    case c_cert
+    solve( !KU( sign(<pk(x), T, 'terminal'>, ca_sk) ) @ #vk.20 )
+      case CA_Sign_ltk
+      solve( !KU( sign(<IDc, r1, pkTe>, ~ltk) ) @ #vk.12 )
+        case TA_RESPONSE_T
+        by contradiction /* from formulas */
+      next
+        case c_sign
+        solve( !KU( ~ltk ) @ #vk.23 )
+          case Corrupt_ltk
+          by contradiction /* from formulas */
+        qed
+      qed
+    next
+      case TA_INIT_T
+      by contradiction /* from formulas */
+    next
+      case c_sign
+      by solve( !KU( ca_sk ) @ #vk.23 )
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C), pkTe, 'g'^~skC, 
+                           ~id_c, ~r2>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, skTe, ~id_c,
+                          cert('g'^~ltk, sign(<'g'^~ltk, $C, 'chip'>, ca_sk), $C)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, ~ltk) ) @ #vk.13 )
+                case TA_RESPONSE_T
+                solve( !KU( kdf_enc('g'^(~skTe*~ltk.1), ~r2) ) @ #vk.12 )
+                  case c_kdf_enc
+                  solve( !KU( 'g'^(~skTe*~ltk.1) ) @ #vk.36 )
+                    case TA_INIT_T
+                    solve( !KU( ~ltk.1 ) @ #vk.37 )
+                      case Corrupt_ltk
+                      solve( !KU( kdf_mac('g'^(~skTe*~ltk.1), ~r2) ) @ #vk.15 )
+                        case c_kdf_mac
+                        solve( !KU( ~r2 ) @ #vk.20 )
+                          case CA_FINISH_C
+                          solve( !KU( ~id_c ) @ #vk.35 )
+                            case TA_CHALLENGE_C
+                            solve( !KU( ~r1 ) @ #vk.36 )
+                              case TA_CHALLENGE_C
+                              solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T)
+                                     ) @ #vk.22 )
+                                case CA_Sign_ltk
+                                solve( !KU( mac('g'^~skTe, kdf_mac('g'^(~skTe*~ltk.1), ~r2)) ) @ #vk.26 )
+                                  case CA_FINISH_C
+                                  solve( !KU( cert('g'^~ltk.1, sign(<'g'^~ltk.1, $C, 'chip'>, ca_sk), $C)
+                                         ) @ #vk.34 )
+                                    case CA_INIT_C
+                                    solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.40 )
+                                      case TA_RESPONSE_T
+                                      solve( !KU( cert(pk(~skT), sign(<pk(~skT), z, 'terminal'>, ca_sk), z)
+                                             ) @ #vk.43 )
+                                        case CA_Sign_ltk
+                                        solve( !KU( ~id_c.1 ) @ #vk.46 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( ~r1.1 ) @ #vk.47 )
+                                            case TA_CHALLENGE_C
+                                            solve( !KU( 'g'^~skTe ) @ #vk.27 )
+                                              case TA_INIT_T
+                                              solve( !KU( 'g'^~skTe.1 ) @ #vk.47 )
+                                                case TA_INIT_T
+                                                SOLVED // trace found
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 54.21s
+  
+  session_exist (exists-trace): verified (22 steps)
+  two_session_exist (exists-trace): verified (32 steps)
+  weak_agreement_C (all-traces): verified (8 steps)
+  weak_agreement_T (all-traces): falsified - found trace (15 steps)
+  agreement_C (all-traces): verified (8 steps)
+  agreement_T (all-traces): falsified - found trace (14 steps)
+  aliveness (all-traces): verified (155 steps)
+  session_uniqueness (all-traces): verified (336 steps)
+  consistency (all-traces): verified (8 steps)
+  key_secrecy (all-traces): verified (54 steps)
+  chip_hiding (all-traces): verified (4 steps)
+  nonRepudiation_terminal (exists-trace): verified (12 steps)
+  nonRepudiation_chip (exists-trace): falsified - no trace found (15 steps)
+  pfs (all-traces): falsified - found trace (26 steps)
+
+==============================================================================
diff --git a/results/45991168.err.PFS_ALL_SigPQEAC_TAMARIN b/results/45991168.err.PFS_ALL_SigPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..c4ac5bf2be983f5509bcf3935da4c0cdb3ce37fd
--- /dev/null
+++ b/results/45991168.err.PFS_ALL_SigPQEAC_TAMARIN
@@ -0,0 +1,38 @@
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Open Chains] Too many chain goals, stopping precomputation. Open Chains limits (can be changed with -c=): 10
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 3/5
+[Open Chains] Too many chain goals, stopping precomputation. Open Chains limits (can be changed with -c=): 10
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 3/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991168.out.PFS_ALL_SigPQEAC_TAMARIN b/results/45991168.out.PFS_ALL_SigPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..244e4338ed9065bbf0246017bfde15a3f0f9871d
--- /dev/null
+++ b/results/45991168.out.PFS_ALL_SigPQEAC_TAMARIN
@@ -0,0 +1,5614 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory SigPQEAC begin
+
+// Function signature and definition of the equational theory E
+
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, decaps/2, encaps/2, fst/1, kdf/2, pair/2, pk/1, sign/2,
+           snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    decaps(encaps(k, pk(sk)), sk) = k,
+    fst(<x.1, x.2>) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [ !Pk( $A, pk(~ltk), 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [ Out( <certT, '1', 't'> ), Out( ~iid ), TAInitT( <$T, ~iid> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [ In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ) ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, '2', 'c'> ),
+   TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1 )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [ In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ) ]
+    --[ Eq( z, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, '2', 'c'> ),
+     TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1 )
+     ]
+    variants (modulo AC)
+    1. certT = certT.12
+       z     = verify(cert_sig(certT.12),
+                      <cert_pk(certT.12), cert_id(certT.12), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(x.13, sign(<x.13, x.14, 'terminal'>, ca_sk), x.14)
+       z     = true
+    
+    3. certT = cert(x.14, x.15, x.16)
+       z     = verify(x.15, <x.14, x.16, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, '2', 'c'> ), TAInitT( <$T, iid> ),
+   !Ltk( $T, ~skT, 'terminal' )
+   ]
+  -->
+   [
+   Out( <sign(<'TA', id_c, r1>, ~skT), '3', 't'> ),
+   TAResponseT( <$T, iid>, id_c )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_COMPLETE_C:
+   [ In( <s, '3', 't'> ), TAChallengeC( <$C, iid>, certT, id_c, r1 ) ]
+  --[
+  Eq( verify(s, <'TA', id_c, r1>, cert_pk(certT)), true ),
+  CompletedTA( $C, iid, cert_id(certT) )
+  ]->
+   [ TACompleteC( <$C, iid>, certT, id_c, r1 ) ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [ In( <s, '3', 't'> ), TAChallengeC( <$C, iid>, certT, id_c, r1 ) ]
+    --[ Eq( z, true ), CompletedTA( $C, iid, z.1 ) ]->
+     [ TACompleteC( <$C, iid>, certT, id_c, r1 ) ]
+    variants (modulo AC)
+    1. certT = certT.16
+       id_c  = id_c.17
+       r1    = r1.19
+       s     = s.20
+       z     = verify(s.20, <'TA', id_c.17, r1.19>, cert_pk(certT.16))
+       z.1   = cert_id(certT.16)
+    
+    2. certT = cert(x.37, x.38, z.28)
+       id_c  = id_c.21
+       r1    = r1.23
+       s     = s.24
+       z     = verify(s.24, <'TA', id_c.21, r1.23>, x.37)
+       z.1   = z.28
+    
+    3. certT = cert(pk(x.37), x.38, z.28)
+       id_c  = id_c.21
+       r1    = r1.23
+       s     = sign(<'TA', id_c.21, r1.23>, x.37)
+       z     = true
+       z.1   = z.28
+  */
+
+rule (modulo E) CA_INIT_C:
+   [
+   Fr( ~r2 ), Fr( ~skCe ), TACompleteC( <$C, iid>, certT, id_c, r1 ),
+   !Cert( $C, certC, 'chip' )
+   ]
+  -->
+   [
+   Out( <certC, ~r2, pk(~skCe), '4', 'c'> ), Out( iid ),
+   CAInitC( <$C, iid>, certT, id_c, r1, ~r2, ~skCe )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_INIT_T:
+   [
+   In( <certC, r2, pkCe, '4', 'c'> ), Fr( ~k ), Fr( ~ke ),
+   TAResponseT( <$T, iid>, id_c ), !Ltk( $T, ~skT, 'terminal' ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[ Eq( verify_cert(certC, 'chip'), true ) ]->
+   [
+   Out( <encaps(~k, cert_pk(certC)), 
+         sign(<'CA', certT, certC, r2, encaps(~k, cert_pk(certC)), pkCe, 
+               encaps(~ke, pkCe)>,
+              ~skT), 
+         encaps(~ke, pkCe), '5', 't'>
+   ),
+   CAInitT( <$T, iid>, id_c, certC, r2, <~k, encaps(~k, cert_pk(certC))>,
+            <~ke, encaps(~ke, pkCe)>, pkCe
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_INIT_T:
+     [
+     In( <certC, r2, pkCe, '4', 'c'> ), Fr( ~k ), Fr( ~ke ),
+     TAResponseT( <$T, iid>, id_c ), !Ltk( $T, ~skT, 'terminal' ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[ Eq( z.1, true ) ]->
+     [
+     Out( <encaps(~k, z), 
+           sign(<'CA', certT, certC, r2, encaps(~k, z), pkCe, encaps(~ke, pkCe)>,
+                ~skT), 
+           encaps(~ke, pkCe), '5', 't'>
+     ),
+     CAInitT( <$T, iid>, id_c, certC, r2, <~k, encaps(~k, z)>,
+              <~ke, encaps(~ke, pkCe)>, pkCe
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.20
+       z     = cert_pk(certC.20)
+       z.1   = verify(cert_sig(certC.20),
+                      <cert_pk(certC.20), cert_id(certC.20), 'chip'>, pk(ca_sk))
+    
+    2. certC = cert(z.46, sign(<z.46, x.77, 'chip'>, ca_sk), x.77)
+       z     = z.46
+       z.1   = true
+    
+    3. certC = cert(z.47, x.78, x.79)
+       z     = z.47
+       z.1   = verify(x.78, <z.47, x.79, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) CA_FINISH_C:
+   [
+   In( <cip, s, cipe, '5', 't'> ),
+   CAInitC( <$C, iid>, certT, id_c, r1, r2, skCe ),
+   !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( verify(s, <'CA', certT, certC, r2, cip, pk(skCe), cipe>,
+             cert_pk(certT)),
+      true
+  ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>,
+                 <decaps(cip, ~skC), decaps(cipe, skCe)>),
+             <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <
+         kdf(<'CNF', certT, certC, r2, cip, pk(skCe), cipe>,
+             <decaps(cip, ~skC), decaps(cipe, skCe)>), 
+         '6', 'c'>
+   ),
+   CAFinishC( $C, cert_id(certT),
+              kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>,
+                  <decaps(cip, ~skC), decaps(cipe, skCe)>)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_C:
+     [
+     In( <cip, s, cipe, '5', 't'> ),
+     CAInitC( <$C, iid>, certT, id_c, r1, r2, skCe ),
+     !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( z.3, true ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>),
+               <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', z.2
+    )
+    ]->
+     [
+     Out( <kdf(<'CNF', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>), 
+           '6', 'c'>
+     ),
+     CAFinishC( $C, z.2,
+                kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>)
+     )
+     ]
+    variants (modulo AC)
+     1. ~skC  = ~skC.35
+        certC = certC.36
+        certT = certT.37
+        cip   = cip.38
+        cipe  = cipe.39
+        r2    = r2.43
+        s     = s.44
+        skCe  = skCe.45
+        z     = decaps(cip.38, ~skC.35)
+        z.1   = decaps(cipe.39, skCe.45)
+        z.2   = cert_id(certT.37)
+        z.3   = verify(s.44,
+                       <'CA', certT.37, certC.36, r2.43, cip.38, pk(skCe.45), cipe.39>,
+                       cert_pk(certT.37))
+    
+     2. ~skC  = ~skC.40
+        certC = certC.41
+        certT = certT.42
+        cip   = encaps(z.55, pk(~skC.40))
+        cipe  = cipe.44
+        r2    = r2.48
+        s     = s.49
+        skCe  = skCe.50
+        z     = z.55
+        z.1   = decaps(cipe.44, skCe.50)
+        z.2   = cert_id(certT.42)
+        z.3   = verify(s.49,
+                       <'CA', certT.42, certC.41, r2.48, encaps(z.55, pk(~skC.40)), 
+                        pk(skCe.50), cipe.44>,
+                       cert_pk(certT.42))
+    
+     3. ~skC  = ~skC.41
+        certC = certC.42
+        certT = certT.43
+        cip   = cip.44
+        cipe  = encaps(z.57, pk(skCe.51))
+        r2    = r2.49
+        s     = s.50
+        skCe  = skCe.51
+        z     = decaps(cip.44, ~skC.41)
+        z.1   = z.57
+        z.2   = cert_id(certT.43)
+        z.3   = verify(s.50,
+                       <'CA', certT.43, certC.42, r2.49, cip.44, pk(skCe.51), 
+                        encaps(z.57, pk(skCe.51))>,
+                       cert_pk(certT.43))
+    
+     4. ~skC  = ~skC.41
+        certC = certC.42
+        certT = certT.43
+        cip   = encaps(z.56, pk(~skC.41))
+        cipe  = encaps(z.57, pk(skCe.51))
+        r2    = r2.49
+        s     = s.50
+        skCe  = skCe.51
+        z     = z.56
+        z.1   = z.57
+        z.2   = cert_id(certT.43)
+        z.3   = verify(s.50,
+                       <'CA', certT.43, certC.42, r2.49, encaps(z.56, pk(~skC.41)), 
+                        pk(skCe.51), encaps(z.57, pk(skCe.51))>,
+                       cert_pk(certT.43))
+    
+     5. ~skC  = ~skC.158
+        certC = certC.159
+        certT = cert(x.312, x.313, z.177)
+        cip   = cip.161
+        cipe  = cipe.162
+        r2    = r2.166
+        s     = s.167
+        skCe  = skCe.168
+        z     = decaps(cip.161, ~skC.158)
+        z.1   = decaps(cipe.162, skCe.168)
+        z.2   = z.177
+        z.3   = verify(s.167,
+                       <'CA', cert(x.312, x.313, z.177), certC.159, r2.166, cip.161, 
+                        pk(skCe.168), cipe.162>,
+                       x.312)
+    
+     6. ~skC  = ~skC.158
+        certC = certC.159
+        certT = cert(x.312, x.313, z.177)
+        cip   = cip.161
+        cipe  = encaps(z.174, pk(skCe.168))
+        r2    = r2.166
+        s     = s.167
+        skCe  = skCe.168
+        z     = decaps(cip.161, ~skC.158)
+        z.1   = z.174
+        z.2   = z.177
+        z.3   = verify(s.167,
+                       <'CA', cert(x.312, x.313, z.177), certC.159, r2.166, cip.161, 
+                        pk(skCe.168), encaps(z.174, pk(skCe.168))>,
+                       x.312)
+    
+     7. ~skC  = ~skC.159
+        certC = certC.160
+        certT = cert(pk(x.314), x.315, z.178)
+        cip   = cip.162
+        cipe  = cipe.163
+        r2    = r2.167
+        s     = sign(<'CA', cert(pk(x.314), x.315, z.178), certC.160, r2.167, 
+                      cip.162, pk(skCe.169), cipe.163>,
+                     x.314)
+        skCe  = skCe.169
+        z     = decaps(cip.162, ~skC.159)
+        z.1   = decaps(cipe.163, skCe.169)
+        z.2   = z.178
+        z.3   = true
+    
+     8. ~skC  = ~skC.159
+        certC = certC.160
+        certT = cert(pk(x.314), x.315, z.178)
+        cip   = cip.162
+        cipe  = encaps(z.175, pk(skCe.169))
+        r2    = r2.167
+        s     = sign(<'CA', cert(pk(x.314), x.315, z.178), certC.160, r2.167, 
+                      cip.162, pk(skCe.169), encaps(z.175, pk(skCe.169))>,
+                     x.314)
+        skCe  = skCe.169
+        z     = decaps(cip.162, ~skC.159)
+        z.1   = z.175
+        z.2   = z.178
+        z.3   = true
+    
+     9. ~skC  = ~skC.160
+        certC = certC.161
+        certT = cert(x.316, x.317, z.179)
+        cip   = encaps(z.175, pk(~skC.160))
+        cipe  = cipe.164
+        r2    = r2.168
+        s     = s.169
+        skCe  = skCe.170
+        z     = z.175
+        z.1   = decaps(cipe.164, skCe.170)
+        z.2   = z.179
+        z.3   = verify(s.169,
+                       <'CA', cert(x.316, x.317, z.179), certC.161, r2.168, 
+                        encaps(z.175, pk(~skC.160)), pk(skCe.170), cipe.164>,
+                       x.316)
+    
+    10. ~skC  = ~skC.160
+        certC = certC.161
+        certT = cert(x.316, x.317, z.179)
+        cip   = encaps(z.175, pk(~skC.160))
+        cipe  = encaps(z.176, pk(skCe.170))
+        r2    = r2.168
+        s     = s.169
+        skCe  = skCe.170
+        z     = z.175
+        z.1   = z.176
+        z.2   = z.179
+        z.3   = verify(s.169,
+                       <'CA', cert(x.316, x.317, z.179), certC.161, r2.168, 
+                        encaps(z.175, pk(~skC.160)), pk(skCe.170), encaps(z.176, pk(skCe.170))>,
+                       x.316)
+    
+    11. ~skC  = ~skC.160
+        certC = certC.161
+        certT = cert(pk(x.316), x.317, z.179)
+        cip   = encaps(z.175, pk(~skC.160))
+        cipe  = cipe.164
+        r2    = r2.168
+        s     = sign(<'CA', cert(pk(x.316), x.317, z.179), certC.161, r2.168, 
+                      encaps(z.175, pk(~skC.160)), pk(skCe.170), cipe.164>,
+                     x.316)
+        skCe  = skCe.170
+        z     = z.175
+        z.1   = decaps(cipe.164, skCe.170)
+        z.2   = z.179
+        z.3   = true
+    
+    12. ~skC  = ~skC.160
+        certC = certC.161
+        certT = cert(pk(x.316), x.317, z.179)
+        cip   = encaps(z.175, pk(~skC.160))
+        cipe  = encaps(z.176, pk(skCe.170))
+        r2    = r2.168
+        s     = sign(<'CA', cert(pk(x.316), x.317, z.179), certC.161, r2.168, 
+                      encaps(z.175, pk(~skC.160)), pk(skCe.170), encaps(z.176, pk(skCe.170))>,
+                     x.316)
+        skCe  = skCe.170
+        z     = z.175
+        z.1   = z.176
+        z.2   = z.179
+        z.3   = true
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <kCNF_C, '6', 'c'> ),
+   CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>), kCNF_C ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>),
+             <certT, certC, r2, cip, pkCe, cipe>, $T, 'terminal', cert_id(certC)
+  ),
+  Finished( <certT, certC, r2, cip, pkCe, cipe> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T,
+              kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+   ),
+   !SessionReveal( <certT, certC, r2, cip, pkCe, cipe>,
+                   kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <kCNF_C, '6', 'c'> ),
+     CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>), kCNF_C ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>),
+               <certT, certC, r2, cip, pkCe, cipe>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, r2, cip, pkCe, cipe> )
+    ]->
+     [
+     CAFinishT( z, $T,
+                kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+     ),
+     !SessionReveal( <certT, certC, r2, cip, pkCe, cipe>,
+                     kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.18
+       z     = cert_id(certC.18)
+    
+    2. certC = cert(x.44, x.45, z.31)
+       z     = z.31
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, IDc, r1, sT, certC, r2, pkCe, cip, sC, cipe, kCNF> ),
+   In( skCe ), !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(certC) ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(sT, <'TA', IDc, r1>, cert_pk(certT)), true ),
+  Eq( verify(sC, <'CA', certT, certC, r2, cip, pkCe, cipe>,
+             cert_pk(certT)),
+      true
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>,
+          <decaps(cip, skC), decaps(cipe, skCe)>)
+  ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, IDc, r1, sT, certC, r2, pkCe, cip, sC, cipe, kCNF> ),
+     In( skCe ), !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( z.1, true ), Eq( z.2, true ), Eq( z.3, true ),
+    Eq( z.4, true ),
+    Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <z.5, z.6>) ),
+    ValidTrans( C, 'chip', z.7 )
+    ]->
+     [ ]
+    variants (modulo AC)
+      1. IDc   = IDc.38
+         certC = certC.39
+         certT = certT.40
+         cip   = cip.41
+         cipe  = cipe.42
+         pkCe  = pkCe.44
+         r1    = r1.45
+         r2    = r2.46
+         sC    = sC.47
+         sT    = sT.48
+         skC   = skC.49
+         skCe  = skCe.50
+         z     = cert_id(certC.39)
+         z.1   = verify(cert_sig(certT.40),
+                        <cert_pk(certT.40), cert_id(certT.40), 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.39),
+                        <cert_pk(certC.39), cert_id(certC.39), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.48, <'TA', IDc.38, r1.45>, cert_pk(certT.40))
+         z.4   = verify(sC.47,
+                        <'CA', certT.40, certC.39, r2.46, cip.41, pkCe.44, cipe.42>,
+                        cert_pk(certT.40))
+         z.5   = decaps(cip.41, skC.49)
+         z.6   = decaps(cipe.42, skCe.50)
+         z.7   = cert_id(certT.40)
+    
+      2. IDc   = IDc.46
+         certC = certC.47
+         certT = certT.48
+         cip   = encaps(z.66, pk(skC.57))
+         cipe  = cipe.50
+         pkCe  = pkCe.52
+         r1    = r1.53
+         r2    = r2.54
+         sC    = sC.55
+         sT    = sT.56
+         skC   = skC.57
+         skCe  = skCe.58
+         z     = cert_id(certC.47)
+         z.1   = verify(cert_sig(certT.48),
+                        <cert_pk(certT.48), cert_id(certT.48), 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.47),
+                        <cert_pk(certC.47), cert_id(certC.47), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.56, <'TA', IDc.46, r1.53>, cert_pk(certT.48))
+         z.4   = verify(sC.55,
+                        <'CA', certT.48, certC.47, r2.54, encaps(z.66, pk(skC.57)), pkCe.52, 
+                         cipe.50>,
+                        cert_pk(certT.48))
+         z.5   = z.66
+         z.6   = decaps(cipe.50, skCe.58)
+         z.7   = cert_id(certT.48)
+    
+      3. IDc   = IDc.47
+         certC = certC.48
+         certT = certT.49
+         cip   = cip.50
+         cipe  = encaps(z.68, pk(skCe.59))
+         pkCe  = pkCe.53
+         r1    = r1.54
+         r2    = r2.55
+         sC    = sC.56
+         sT    = sT.57
+         skC   = skC.58
+         skCe  = skCe.59
+         z     = cert_id(certC.48)
+         z.1   = verify(cert_sig(certT.49),
+                        <cert_pk(certT.49), cert_id(certT.49), 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.48),
+                        <cert_pk(certC.48), cert_id(certC.48), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.57, <'TA', IDc.47, r1.54>, cert_pk(certT.49))
+         z.4   = verify(sC.56,
+                        <'CA', certT.49, certC.48, r2.55, cip.50, pkCe.53, 
+                         encaps(z.68, pk(skCe.59))>,
+                        cert_pk(certT.49))
+         z.5   = decaps(cip.50, skC.58)
+         z.6   = z.68
+         z.7   = cert_id(certT.49)
+    
+      4. IDc   = IDc.47
+         certC = certC.48
+         certT = certT.49
+         cip   = encaps(z.67, pk(skC.58))
+         cipe  = encaps(z.68, pk(skCe.59))
+         pkCe  = pkCe.53
+         r1    = r1.54
+         r2    = r2.55
+         sC    = sC.56
+         sT    = sT.57
+         skC   = skC.58
+         skCe  = skCe.59
+         z     = cert_id(certC.48)
+         z.1   = verify(cert_sig(certT.49),
+                        <cert_pk(certT.49), cert_id(certT.49), 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.48),
+                        <cert_pk(certC.48), cert_id(certC.48), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.57, <'TA', IDc.47, r1.54>, cert_pk(certT.49))
+         z.4   = verify(sC.56,
+                        <'CA', certT.49, certC.48, r2.55, encaps(z.67, pk(skC.58)), pkCe.53, 
+                         encaps(z.68, pk(skCe.59))>,
+                        cert_pk(certT.49))
+         z.5   = z.67
+         z.6   = z.68
+         z.7   = cert_id(certT.49)
+    
+      5. IDc   = IDc.49
+         certC = certC.50
+         certT = cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71)
+         cip   = cip.52
+         cipe  = cipe.53
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = cert_id(certC.50)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.50),
+                        <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, x.95)
+         z.4   = verify(sC.58,
+                        <'CA', cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71), 
+                         certC.50, r2.57, cip.52, pkCe.55, cipe.53>,
+                        x.95)
+         z.5   = decaps(cip.52, skC.60)
+         z.6   = decaps(cipe.53, skCe.61)
+         z.7   = z.71
+    
+      6. IDc   = IDc.49
+         certC = certC.50
+         certT = cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71)
+         cip   = cip.52
+         cipe  = encaps(z.70, pk(skCe.61))
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = cert_id(certC.50)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.50),
+                        <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, x.95)
+         z.4   = verify(sC.58,
+                        <'CA', cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71), 
+                         certC.50, r2.57, cip.52, pkCe.55, encaps(z.70, pk(skCe.61))>,
+                        x.95)
+         z.5   = decaps(cip.52, skC.60)
+         z.6   = z.70
+         z.7   = z.71
+    
+      7. IDc   = IDc.49
+         certC = certC.50
+         certT = cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71)
+         cip   = encaps(z.69, pk(skC.60))
+         cipe  = cipe.53
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = cert_id(certC.50)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.50),
+                        <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, x.95)
+         z.4   = verify(sC.58,
+                        <'CA', cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71), 
+                         certC.50, r2.57, encaps(z.69, pk(skC.60)), pkCe.55, cipe.53>,
+                        x.95)
+         z.5   = z.69
+         z.6   = decaps(cipe.53, skCe.61)
+         z.7   = z.71
+    
+      8. IDc   = IDc.49
+         certC = certC.50
+         certT = cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71)
+         cip   = encaps(z.69, pk(skC.60))
+         cipe  = encaps(z.70, pk(skCe.61))
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = cert_id(certC.50)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.50),
+                        <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, x.95)
+         z.4   = verify(sC.58,
+                        <'CA', cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71), 
+                         certC.50, r2.57, encaps(z.69, pk(skC.60)), pkCe.55, 
+                         encaps(z.70, pk(skCe.61))>,
+                        x.95)
+         z.5   = z.69
+         z.6   = z.70
+         z.7   = z.71
+    
+      9. IDc   = IDc.49
+         certC = cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63)
+         certT = certT.51
+         cip   = cip.52
+         cipe  = cipe.53
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = z.63
+         z.1   = verify(cert_sig(certT.51),
+                        <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, cert_pk(certT.51))
+         z.4   = verify(sC.58,
+                        <'CA', certT.51, cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63), 
+                         r2.57, cip.52, pkCe.55, cipe.53>,
+                        cert_pk(certT.51))
+         z.5   = decaps(cip.52, skC.60)
+         z.6   = decaps(cipe.53, skCe.61)
+         z.7   = cert_id(certT.51)
+    
+     10. IDc   = IDc.49
+         certC = cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63)
+         certT = certT.51
+         cip   = cip.52
+         cipe  = encaps(z.70, pk(skCe.61))
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = z.63
+         z.1   = verify(cert_sig(certT.51),
+                        <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, cert_pk(certT.51))
+         z.4   = verify(sC.58,
+                        <'CA', certT.51, cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63), 
+                         r2.57, cip.52, pkCe.55, encaps(z.70, pk(skCe.61))>,
+                        cert_pk(certT.51))
+         z.5   = decaps(cip.52, skC.60)
+         z.6   = z.70
+         z.7   = cert_id(certT.51)
+    
+     11. IDc   = IDc.49
+         certC = cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63)
+         certT = certT.51
+         cip   = encaps(z.69, pk(skC.60))
+         cipe  = cipe.53
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = z.63
+         z.1   = verify(cert_sig(certT.51),
+                        <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, cert_pk(certT.51))
+         z.4   = verify(sC.58,
+                        <'CA', certT.51, cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63), 
+                         r2.57, encaps(z.69, pk(skC.60)), pkCe.55, cipe.53>,
+                        cert_pk(certT.51))
+         z.5   = z.69
+         z.6   = decaps(cipe.53, skCe.61)
+         z.7   = cert_id(certT.51)
+    
+     12. IDc   = IDc.49
+         certC = cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63)
+         certT = certT.51
+         cip   = encaps(z.69, pk(skC.60))
+         cipe  = encaps(z.70, pk(skCe.61))
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = z.63
+         z.1   = verify(cert_sig(certT.51),
+                        <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, cert_pk(certT.51))
+         z.4   = verify(sC.58,
+                        <'CA', certT.51, cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63), 
+                         r2.57, encaps(z.69, pk(skC.60)), pkCe.55, encaps(z.70, pk(skCe.61))>,
+                        cert_pk(certT.51))
+         z.5   = z.69
+         z.6   = z.70
+         z.7   = cert_id(certT.51)
+    
+     13. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(x.96, x.97, z.72)
+         cip   = cip.53
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = verify(x.97, <x.96, z.72, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, x.96)
+         z.4   = verify(sC.59,
+                        <'CA', cert(x.96, x.97, z.72), certC.51, r2.58, cip.53, pkCe.56, cipe.54
+                        >,
+                        x.96)
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = z.72
+    
+     14. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(x.96, x.97, z.72)
+         cip   = cip.53
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = verify(x.97, <x.96, z.72, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, x.96)
+         z.4   = verify(sC.59,
+                        <'CA', cert(x.96, x.97, z.72), certC.51, r2.58, cip.53, pkCe.56, 
+                         encaps(z.71, pk(skCe.62))>,
+                        x.96)
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = z.71
+         z.7   = z.72
+    
+     15. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(x.96, x.97, z.72)
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = verify(x.97, <x.96, z.72, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, x.96)
+         z.4   = verify(sC.59,
+                        <'CA', cert(x.96, x.97, z.72), certC.51, r2.58, 
+                         encaps(z.70, pk(skC.61)), pkCe.56, cipe.54>,
+                        x.96)
+         z.5   = z.70
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = z.72
+    
+     16. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(x.96, x.97, z.72)
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = verify(x.97, <x.96, z.72, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, x.96)
+         z.4   = verify(sC.59,
+                        <'CA', cert(x.96, x.97, z.72), certC.51, r2.58, 
+                         encaps(z.70, pk(skC.61)), pkCe.56, encaps(z.71, pk(skCe.62))>,
+                        x.96)
+         z.5   = z.70
+         z.6   = z.71
+         z.7   = z.72
+    
+     17. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72)
+         cip   = cip.53
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sign(<'CA', 
+                       cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72), 
+                       certC.51, r2.58, cip.53, pkCe.56, cipe.54>,
+                      x.97)
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, pk(x.97))
+         z.4   = true
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = z.72
+    
+     18. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72)
+         cip   = cip.53
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sign(<'CA', 
+                       cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72), 
+                       certC.51, r2.58, cip.53, pkCe.56, encaps(z.71, pk(skCe.62))>,
+                      x.97)
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, pk(x.97))
+         z.4   = true
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = z.71
+         z.7   = z.72
+    
+     19. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72)
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sign(<'CA', 
+                       cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72), 
+                       certC.51, r2.58, encaps(z.70, pk(skC.61)), pkCe.56, cipe.54>,
+                      x.97)
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, pk(x.97))
+         z.4   = true
+         z.5   = z.70
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = z.72
+    
+     20. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72)
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sign(<'CA', 
+                       cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72), 
+                       certC.51, r2.58, encaps(z.70, pk(skC.61)), pkCe.56, 
+                       encaps(z.71, pk(skCe.62))>,
+                      x.97)
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, pk(x.97))
+         z.4   = true
+         z.5   = z.70
+         z.6   = z.71
+         z.7   = z.72
+    
+     21. IDc   = IDc.50
+         certC = cert(x.96, x.97, z.64)
+         certT = certT.52
+         cip   = cip.53
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = z.64
+         z.1   = verify(cert_sig(certT.52),
+                        <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.97, <x.96, z.64, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, cert_pk(certT.52))
+         z.4   = verify(sC.59,
+                        <'CA', certT.52, cert(x.96, x.97, z.64), r2.58, cip.53, pkCe.56, cipe.54
+                        >,
+                        cert_pk(certT.52))
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = cert_id(certT.52)
+    
+     22. IDc   = IDc.50
+         certC = cert(x.96, x.97, z.64)
+         certT = certT.52
+         cip   = cip.53
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = z.64
+         z.1   = verify(cert_sig(certT.52),
+                        <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.97, <x.96, z.64, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, cert_pk(certT.52))
+         z.4   = verify(sC.59,
+                        <'CA', certT.52, cert(x.96, x.97, z.64), r2.58, cip.53, pkCe.56, 
+                         encaps(z.71, pk(skCe.62))>,
+                        cert_pk(certT.52))
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = z.71
+         z.7   = cert_id(certT.52)
+    
+     23. IDc   = IDc.50
+         certC = cert(x.96, x.97, z.64)
+         certT = certT.52
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = z.64
+         z.1   = verify(cert_sig(certT.52),
+                        <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.97, <x.96, z.64, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, cert_pk(certT.52))
+         z.4   = verify(sC.59,
+                        <'CA', certT.52, cert(x.96, x.97, z.64), r2.58, 
+                         encaps(z.70, pk(skC.61)), pkCe.56, cipe.54>,
+                        cert_pk(certT.52))
+         z.5   = z.70
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = cert_id(certT.52)
+    
+     24. IDc   = IDc.50
+         certC = cert(x.96, x.97, z.64)
+         certT = certT.52
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = z.64
+         z.1   = verify(cert_sig(certT.52),
+                        <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.97, <x.96, z.64, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, cert_pk(certT.52))
+         z.4   = verify(sC.59,
+                        <'CA', certT.52, cert(x.96, x.97, z.64), r2.58, 
+                         encaps(z.70, pk(skC.61)), pkCe.56, encaps(z.71, pk(skCe.62))>,
+                        cert_pk(certT.52))
+         z.5   = z.70
+         z.6   = z.71
+         z.7   = cert_id(certT.52)
+    
+     25. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.98), x.99, z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', cert(pk(x.98), x.99, z.73), certC.52, r2.59, cip.54, 
+                       pkCe.57, cipe.55>,
+                      x.98)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = verify(x.99, <pk(x.98), z.73, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.98))
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     26. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.98), x.99, z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', cert(pk(x.98), x.99, z.73), certC.52, r2.59, cip.54, 
+                       pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.98)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = verify(x.99, <pk(x.98), z.73, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.98))
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     27. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.98), x.99, z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', cert(pk(x.98), x.99, z.73), certC.52, r2.59, 
+                       encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                      x.98)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = verify(x.99, <pk(x.98), z.73, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.98))
+         z.4   = true
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     28. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.98), x.99, z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', cert(pk(x.98), x.99, z.73), certC.52, r2.59, 
+                       encaps(z.71, pk(skC.62)), pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.98)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = verify(x.99, <pk(x.98), z.73, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.98))
+         z.4   = true
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     29. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.60,
+                        <'CA', cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                         certC.52, r2.59, cip.54, pkCe.57, cipe.55>,
+                        pk(x.99))
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     30. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       certC.52, r2.59, cip.54, pkCe.57, cipe.55>,
+                      x.99)
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     31. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.60,
+                        <'CA', cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                         certC.52, r2.59, cip.54, pkCe.57, encaps(z.72, pk(skCe.63))>,
+                        pk(x.99))
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     32. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       certC.52, r2.59, cip.54, pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.99)
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     33. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.60,
+                        <'CA', cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                         certC.52, r2.59, encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                        pk(x.99))
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     34. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       certC.52, r2.59, encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                      x.99)
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     35. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.60,
+                        <'CA', cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                         certC.52, r2.59, encaps(z.71, pk(skC.62)), pkCe.57, 
+                         encaps(z.72, pk(skCe.63))>,
+                        pk(x.99))
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     36. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       certC.52, r2.59, encaps(z.71, pk(skC.62)), pkCe.57, 
+                       encaps(z.72, pk(skCe.63))>,
+                      x.99)
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     37. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, x.99)
+         z.4   = verify(sC.60,
+                        <'CA', cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73), 
+                         cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, cip.54, 
+                         pkCe.57, cipe.55>,
+                        x.99)
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     38. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, x.99)
+         z.4   = verify(sC.60,
+                        <'CA', cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73), 
+                         cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, cip.54, 
+                         pkCe.57, encaps(z.72, pk(skCe.63))>,
+                        x.99)
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     39. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, x.99)
+         z.4   = verify(sC.60,
+                        <'CA', cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73), 
+                         cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, 
+                         encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                        x.99)
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     40. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, x.99)
+         z.4   = verify(sC.60,
+                        <'CA', cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73), 
+                         cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, 
+                         encaps(z.71, pk(skC.62)), pkCe.57, encaps(z.72, pk(skCe.63))>,
+                        x.99)
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     41. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, cip.54, 
+                       pkCe.57, cipe.55>,
+                      x.99)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.99))
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     42. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, cip.54, 
+                       pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.99)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.99))
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     43. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, 
+                       encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                      x.99)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.99))
+         z.4   = true
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     44. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, 
+                       encaps(z.71, pk(skC.62)), pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.99)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.99))
+         z.4   = true
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     45. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, cip.55, pkCe.58, 
+                         cipe.56>,
+                        pk(x.100))
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     46. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                       cip.55, pkCe.58, cipe.56>,
+                      x.100)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     47. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, cip.55, pkCe.58, 
+                         encaps(z.73, pk(skCe.64))>,
+                        pk(x.100))
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     48. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                       cip.55, pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.100)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     49. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                        pk(x.100))
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     50. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                      x.100)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     51. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        pk(x.100))
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     52. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.100)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     53. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.101)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.98, x.99, z.66), r2.60, cip.55, pkCe.58, cipe.56>,
+                        x.101)
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     54. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.101)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.98, x.99, z.66), r2.60, cip.55, pkCe.58, encaps(z.73, pk(skCe.64))
+                        >,
+                        x.101)
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     55. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.101)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.98, x.99, z.66), r2.60, encaps(z.72, pk(skC.63)), pkCe.58, cipe.56
+                        >,
+                        x.101)
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     56. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.101)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.98, x.99, z.66), r2.60, encaps(z.72, pk(skC.63)), pkCe.58, 
+                         encaps(z.73, pk(skCe.64))>,
+                        x.101)
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     57. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.98, x.99, z.66), r2.60, cip.55, pkCe.58, cipe.56>,
+                      x.101)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.101))
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     58. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.98, x.99, z.66), r2.60, cip.55, pkCe.58, encaps(z.73, pk(skCe.64))
+                      >,
+                      x.101)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.101))
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     59. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.98, x.99, z.66), r2.60, encaps(z.72, pk(skC.63)), pkCe.58, cipe.56
+                      >,
+                      x.101)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.101))
+         z.4   = true
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     60. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.98, x.99, z.66), r2.60, encaps(z.72, pk(skC.63)), pkCe.58, 
+                       encaps(z.73, pk(skCe.64))>,
+                      x.101)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.101))
+         z.4   = true
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     61. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(x.100, x.101, z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <x.100, z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.100)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.100, x.101, z.74), 
+                         cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                         pkCe.58, cipe.56>,
+                        x.100)
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     62. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(x.100, x.101, z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <x.100, z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.100)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.100, x.101, z.74), 
+                         cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                         pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        x.100)
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     63. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(x.100, x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <x.100, z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.100)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.100, x.101, z.74), 
+                         cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                        x.100)
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     64. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(x.100, x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <x.100, z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.100)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.100, x.101, z.74), 
+                         cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        x.100)
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     65. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), 
+                       cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                       pkCe.58, cipe.56>,
+                      x.100)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.100))
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     66. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), 
+                       cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                       pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.100)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.100))
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     67. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), 
+                       cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                      x.100)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.100))
+         z.4   = true
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     68. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), 
+                       cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.100)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.100))
+         z.4   = true
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     69. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', 
+                         cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                         pkCe.58, cipe.56>,
+                        pk(x.101))
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     70. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                       pkCe.58, cipe.56>,
+                      x.101)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     71. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', 
+                         cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                         pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        pk(x.101))
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     72. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                       pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.101)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     73. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', 
+                         cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                        pk(x.101))
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     74. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                      x.101)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     75. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', 
+                         cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        pk(x.101))
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     76. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.101)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     77. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(x.102, x.103, z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <x.102, z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, x.102)
+         z.4   = verify(sC.62,
+                        <'CA', cert(x.102, x.103, z.75), cert(x.99, x.100, z.67), r2.61, cip.56, 
+                         pkCe.59, cipe.57>,
+                        x.102)
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     78. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(x.102, x.103, z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <x.102, z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, x.102)
+         z.4   = verify(sC.62,
+                        <'CA', cert(x.102, x.103, z.75), cert(x.99, x.100, z.67), r2.61, cip.56, 
+                         pkCe.59, encaps(z.74, pk(skCe.65))>,
+                        x.102)
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     79. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(x.102, x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <x.102, z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, x.102)
+         z.4   = verify(sC.62,
+                        <'CA', cert(x.102, x.103, z.75), cert(x.99, x.100, z.67), r2.61, 
+                         encaps(z.73, pk(skC.64)), pkCe.59, cipe.57>,
+                        x.102)
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     80. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(x.102, x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <x.102, z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, x.102)
+         z.4   = verify(sC.62,
+                        <'CA', cert(x.102, x.103, z.75), cert(x.99, x.100, z.67), r2.61, 
+                         encaps(z.73, pk(skC.64)), pkCe.59, encaps(z.74, pk(skCe.65))>,
+                        x.102)
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+     81. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.99, x.100, z.67), r2.61, cip.56, pkCe.59, cipe.57>,
+                      x.102)
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, pk(x.102))
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     82. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.99, x.100, z.67), r2.61, cip.56, pkCe.59, 
+                       encaps(z.74, pk(skCe.65))>,
+                      x.102)
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, pk(x.102))
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     83. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.99, x.100, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                       cipe.57>,
+                      x.102)
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, pk(x.102))
+         z.4   = true
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     84. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.99, x.100, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                       encaps(z.74, pk(skCe.65))>,
+                      x.102)
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, pk(x.102))
+         z.4   = true
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+     85. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', 
+                         cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                         cert(x.100, x.101, z.67), r2.61, cip.56, pkCe.59, cipe.57>,
+                        pk(x.103))
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     86. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', 
+                       cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                       cert(x.100, x.101, z.67), r2.61, cip.56, pkCe.59, cipe.57>,
+                      x.103)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     87. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', 
+                         cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                         cert(x.100, x.101, z.67), r2.61, cip.56, pkCe.59, 
+                         encaps(z.74, pk(skCe.65))>,
+                        pk(x.103))
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     88. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', 
+                       cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                       cert(x.100, x.101, z.67), r2.61, cip.56, pkCe.59, 
+                       encaps(z.74, pk(skCe.65))>,
+                      x.103)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     89. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', 
+                         cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                         cert(x.100, x.101, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                         cipe.57>,
+                        pk(x.103))
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     90. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', 
+                       cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                       cert(x.100, x.101, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                       cipe.57>,
+                      x.103)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     91. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', 
+                         cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                         cert(x.100, x.101, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                         encaps(z.74, pk(skCe.65))>,
+                        pk(x.103))
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+     92. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', 
+                       cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                       cert(x.100, x.101, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                       encaps(z.74, pk(skCe.65))>,
+                      x.103)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+     93. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', cert(pk(x.102), x.103, z.75), 
+                         cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, cip.56, 
+                         pkCe.59, cipe.57>,
+                        pk(x.102))
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     94. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, cip.56, 
+                       pkCe.59, cipe.57>,
+                      x.102)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     95. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', cert(pk(x.102), x.103, z.75), 
+                         cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, cip.56, 
+                         pkCe.59, encaps(z.74, pk(skCe.65))>,
+                        pk(x.102))
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     96. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, cip.56, 
+                       pkCe.59, encaps(z.74, pk(skCe.65))>,
+                      x.102)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     97. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', cert(pk(x.102), x.103, z.75), 
+                         cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, 
+                         encaps(z.73, pk(skC.64)), pkCe.59, cipe.57>,
+                        pk(x.102))
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     98. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, 
+                       encaps(z.73, pk(skC.64)), pkCe.59, cipe.57>,
+                      x.102)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     99. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', cert(pk(x.102), x.103, z.75), 
+                         cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, 
+                         encaps(z.73, pk(skC.64)), pkCe.59, encaps(z.74, pk(skCe.65))>,
+                        pk(x.102))
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+    100. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, 
+                       encaps(z.73, pk(skC.64)), pkCe.59, encaps(z.74, pk(skCe.65))>,
+                      x.102)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+    101. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = cip.57
+         cipe  = cipe.58
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sC.63
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.63,
+                        <'CA', cert(pk(x.104), x.105, z.76), cert(x.101, x.102, z.68), r2.62, 
+                         cip.57, pkCe.60, cipe.58>,
+                        pk(x.104))
+         z.5   = decaps(cip.57, skC.65)
+         z.6   = decaps(cipe.58, skCe.66)
+         z.7   = z.76
+    
+    102. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = cip.57
+         cipe  = cipe.58
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sign(<'CA', cert(pk(x.104), x.105, z.76), 
+                       cert(x.101, x.102, z.68), r2.62, cip.57, pkCe.60, cipe.58>,
+                      x.104)
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.57, skC.65)
+         z.6   = decaps(cipe.58, skCe.66)
+         z.7   = z.76
+    
+    103. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = cip.57
+         cipe  = encaps(z.75, pk(skCe.66))
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sC.63
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.63,
+                        <'CA', cert(pk(x.104), x.105, z.76), cert(x.101, x.102, z.68), r2.62, 
+                         cip.57, pkCe.60, encaps(z.75, pk(skCe.66))>,
+                        pk(x.104))
+         z.5   = decaps(cip.57, skC.65)
+         z.6   = z.75
+         z.7   = z.76
+    
+    104. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = cip.57
+         cipe  = encaps(z.75, pk(skCe.66))
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sign(<'CA', cert(pk(x.104), x.105, z.76), 
+                       cert(x.101, x.102, z.68), r2.62, cip.57, pkCe.60, 
+                       encaps(z.75, pk(skCe.66))>,
+                      x.104)
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.57, skC.65)
+         z.6   = z.75
+         z.7   = z.76
+    
+    105. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = encaps(z.74, pk(skC.65))
+         cipe  = cipe.58
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sC.63
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.63,
+                        <'CA', cert(pk(x.104), x.105, z.76), cert(x.101, x.102, z.68), r2.62, 
+                         encaps(z.74, pk(skC.65)), pkCe.60, cipe.58>,
+                        pk(x.104))
+         z.5   = z.74
+         z.6   = decaps(cipe.58, skCe.66)
+         z.7   = z.76
+    
+    106. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = encaps(z.74, pk(skC.65))
+         cipe  = cipe.58
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sign(<'CA', cert(pk(x.104), x.105, z.76), 
+                       cert(x.101, x.102, z.68), r2.62, encaps(z.74, pk(skC.65)), pkCe.60, 
+                       cipe.58>,
+                      x.104)
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.74
+         z.6   = decaps(cipe.58, skCe.66)
+         z.7   = z.76
+    
+    107. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = encaps(z.74, pk(skC.65))
+         cipe  = encaps(z.75, pk(skCe.66))
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sC.63
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.63,
+                        <'CA', cert(pk(x.104), x.105, z.76), cert(x.101, x.102, z.68), r2.62, 
+                         encaps(z.74, pk(skC.65)), pkCe.60, encaps(z.75, pk(skCe.66))>,
+                        pk(x.104))
+         z.5   = z.74
+         z.6   = z.75
+         z.7   = z.76
+    
+    108. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = encaps(z.74, pk(skC.65))
+         cipe  = encaps(z.75, pk(skCe.66))
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sign(<'CA', cert(pk(x.104), x.105, z.76), 
+                       cert(x.101, x.102, z.68), r2.62, encaps(z.74, pk(skC.65)), pkCe.60, 
+                       encaps(z.75, pk(skCe.66))>,
+                      x.104)
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.74
+         z.6   = z.75
+         z.7   = z.76
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, IDc, r1, sT, certC, r2, pkCe, cip, sC, cipe, kCNF> ),
+   In( <k, ke> ), !Pk( T, pkT, 'terminal' )
+   ]
+  --[
+  Eq( T, cert_id(certT) ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(sT, <'TA', IDc, r1>, pkT), true ),
+  Eq( verify(sC, <'CA', certT, certC, r2, cip, pkCe, cipe>, pkT), true ),
+  Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>) ),
+  ValidTrans( T, 'terminal', cert_id(certC) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, IDc, r1, sT, certC, r2, pkCe, cip, sC, cipe, kCNF> ),
+     In( <k, ke> ), !Pk( T, pkT, 'terminal' )
+     ]
+    --[
+    Eq( T, z ), Eq( z.1, true ), Eq( z.2, true ), Eq( z.3, true ),
+    Eq( z.4, true ),
+    Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>) ),
+    ValidTrans( T, 'terminal', z.5 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. IDc   = IDc.39
+        certC = certC.41
+        certT = certT.42
+        cip   = cip.43
+        cipe  = cipe.44
+        pkCe  = pkCe.48
+        pkT   = pkT.49
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        z     = cert_id(certT.42)
+        z.1   = verify(cert_sig(certT.42),
+                       <cert_pk(certT.42), cert_id(certT.42), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.41),
+                       <cert_pk(certC.41), cert_id(certC.41), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.39, r1.50>, pkT.49)
+        z.4   = verify(sC.52,
+                       <'CA', certT.42, certC.41, r2.51, cip.43, pkCe.48, cipe.44>, pkT.49)
+        z.5   = cert_id(certC.41)
+    
+     2. IDc   = IDc.48
+        certC = certC.50
+        certT = cert(x.94, sign(<x.94, z.64, 'terminal'>, ca_sk), z.64)
+        cip   = cip.52
+        cipe  = cipe.53
+        pkCe  = pkCe.57
+        pkT   = pkT.58
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sT.62
+        z     = z.64
+        z.1   = true
+        z.2   = verify(cert_sig(certC.50),
+                       <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.62, <'TA', IDc.48, r1.59>, pkT.58)
+        z.4   = verify(sC.61,
+                       <'CA', cert(x.94, sign(<x.94, z.64, 'terminal'>, ca_sk), z.64), 
+                        certC.50, r2.60, cip.52, pkCe.57, cipe.53>,
+                       pkT.58)
+        z.5   = cert_id(certC.50)
+    
+     3. IDc   = IDc.48
+        certC = cert(x.94, sign(<x.94, z.70, 'chip'>, ca_sk), z.70)
+        certT = certT.51
+        cip   = cip.52
+        cipe  = cipe.53
+        pkCe  = pkCe.57
+        pkT   = pkT.58
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sT.62
+        z     = cert_id(certT.51)
+        z.1   = verify(cert_sig(certT.51),
+                       <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.62, <'TA', IDc.48, r1.59>, pkT.58)
+        z.4   = verify(sC.61,
+                       <'CA', certT.51, cert(x.94, sign(<x.94, z.70, 'chip'>, ca_sk), z.70), 
+                        r2.60, cip.52, pkCe.57, cipe.53>,
+                       pkT.58)
+        z.5   = z.70
+    
+     4. IDc   = IDc.49
+        certC = certC.51
+        certT = cert(x.95, x.96, z.65)
+        cip   = cip.53
+        cipe  = cipe.54
+        pkCe  = pkCe.58
+        pkT   = pkT.59
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sC.62
+        sT    = sT.63
+        z     = z.65
+        z.1   = verify(x.96, <x.95, z.65, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.51),
+                       <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.63, <'TA', IDc.49, r1.60>, pkT.59)
+        z.4   = verify(sC.62,
+                       <'CA', cert(x.95, x.96, z.65), certC.51, r2.61, cip.53, pkCe.58, cipe.54
+                       >,
+                       pkT.59)
+        z.5   = cert_id(certC.51)
+    
+     5. IDc   = IDc.49
+        certC = cert(x.95, x.96, z.71)
+        certT = certT.52
+        cip   = cip.53
+        cipe  = cipe.54
+        pkCe  = pkCe.58
+        pkT   = pkT.59
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sC.62
+        sT    = sT.63
+        z     = cert_id(certT.52)
+        z.1   = verify(cert_sig(certT.52),
+                       <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.96, <x.95, z.71, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.63, <'TA', IDc.49, r1.60>, pkT.59)
+        z.4   = verify(sC.62,
+                       <'CA', certT.52, cert(x.95, x.96, z.71), r2.61, cip.53, pkCe.58, cipe.54
+                       >,
+                       pkT.59)
+        z.5   = z.71
+    
+     6. IDc   = IDc.50
+        certC = cert(x.96, sign(<x.96, z.72, 'chip'>, ca_sk), z.72)
+        certT = cert(x.98, sign(<x.98, z.66, 'terminal'>, ca_sk), z.66)
+        cip   = cip.54
+        cipe  = cipe.55
+        pkCe  = pkCe.59
+        pkT   = pkT.60
+        r1    = r1.61
+        r2    = r2.62
+        sC    = sC.63
+        sT    = sT.64
+        z     = z.66
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.64, <'TA', IDc.50, r1.61>, pkT.60)
+        z.4   = verify(sC.63,
+                       <'CA', cert(x.98, sign(<x.98, z.66, 'terminal'>, ca_sk), z.66), 
+                        cert(x.96, sign(<x.96, z.72, 'chip'>, ca_sk), z.72), r2.62, cip.54, 
+                        pkCe.59, cipe.55>,
+                       pkT.60)
+        z.5   = z.72
+    
+     7. IDc   = IDc.51
+        certC = cert(x.97, x.98, z.73)
+        certT = cert(x.100, sign(<x.100, z.67, 'terminal'>, ca_sk), z.67)
+        cip   = cip.55
+        cipe  = cipe.56
+        pkCe  = pkCe.60
+        pkT   = pkT.61
+        r1    = r1.62
+        r2    = r2.63
+        sC    = sC.64
+        sT    = sT.65
+        z     = z.67
+        z.1   = true
+        z.2   = verify(x.98, <x.97, z.73, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.65, <'TA', IDc.51, r1.62>, pkT.61)
+        z.4   = verify(sC.64,
+                       <'CA', cert(x.100, sign(<x.100, z.67, 'terminal'>, ca_sk), z.67), 
+                        cert(x.97, x.98, z.73), r2.63, cip.55, pkCe.60, cipe.56>,
+                       pkT.61)
+        z.5   = z.73
+    
+     8. IDc   = IDc.51
+        certC = cert(x.97, sign(<x.97, z.73, 'chip'>, ca_sk), z.73)
+        certT = cert(x.99, x.100, z.67)
+        cip   = cip.55
+        cipe  = cipe.56
+        pkCe  = pkCe.60
+        pkT   = pkT.61
+        r1    = r1.62
+        r2    = r2.63
+        sC    = sC.64
+        sT    = sT.65
+        z     = z.67
+        z.1   = verify(x.100, <x.99, z.67, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.65, <'TA', IDc.51, r1.62>, pkT.61)
+        z.4   = verify(sC.64,
+                       <'CA', cert(x.99, x.100, z.67), 
+                        cert(x.97, sign(<x.97, z.73, 'chip'>, ca_sk), z.73), r2.63, cip.55, 
+                        pkCe.60, cipe.56>,
+                       pkT.61)
+        z.5   = z.73
+    
+     9. IDc   = IDc.52
+        certC = cert(x.98, x.99, z.74)
+        certT = cert(x.101, x.102, z.68)
+        cip   = cip.56
+        cipe  = cipe.57
+        pkCe  = pkCe.61
+        pkT   = pkT.62
+        r1    = r1.63
+        r2    = r2.64
+        sC    = sC.65
+        sT    = sT.66
+        z     = z.68
+        z.1   = verify(x.102, <x.101, z.68, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.99, <x.98, z.74, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.66, <'TA', IDc.52, r1.63>, pkT.62)
+        z.4   = verify(sC.65,
+                       <'CA', cert(x.101, x.102, z.68), cert(x.98, x.99, z.74), r2.64, cip.56, 
+                        pkCe.61, cipe.57>,
+                       pkT.62)
+        z.5   = z.74
+    
+    10. IDc   = IDc.56
+        certC = certC.58
+        certT = certT.59
+        cip   = cip.60
+        cipe  = cipe.61
+        pkCe  = pkCe.65
+        pkT   = pk(x.110)
+        r1    = r1.67
+        r2    = r2.68
+        sC    = sign(<'CA', certT.59, certC.58, r2.68, cip.60, pkCe.65, cipe.61>,
+                     x.110)
+        sT    = sT.70
+        z     = cert_id(certT.59)
+        z.1   = verify(cert_sig(certT.59),
+                       <cert_pk(certT.59), cert_id(certT.59), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.58),
+                       <cert_pk(certC.58), cert_id(certC.58), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.70, <'TA', IDc.56, r1.67>, pk(x.110))
+        z.4   = true
+        z.5   = cert_id(certC.58)
+    
+    11. IDc   = IDc.57
+        certC = certC.59
+        certT = cert(x.104, sign(<x.104, z.73, 'terminal'>, ca_sk), z.73)
+        cip   = cip.61
+        cipe  = cipe.62
+        pkCe  = pkCe.66
+        pkT   = pk(x.112)
+        r1    = r1.68
+        r2    = r2.69
+        sC    = sign(<'CA', 
+                      cert(x.104, sign(<x.104, z.73, 'terminal'>, ca_sk), z.73), certC.59, 
+                      r2.69, cip.61, pkCe.66, cipe.62>,
+                     x.112)
+        sT    = sT.71
+        z     = z.73
+        z.1   = true
+        z.2   = verify(cert_sig(certC.59),
+                       <cert_pk(certC.59), cert_id(certC.59), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.71, <'TA', IDc.57, r1.68>, pk(x.112))
+        z.4   = true
+        z.5   = cert_id(certC.59)
+    
+    12. IDc   = IDc.57
+        certC = cert(x.103, sign(<x.103, z.79, 'chip'>, ca_sk), z.79)
+        certT = certT.60
+        cip   = cip.61
+        cipe  = cipe.62
+        pkCe  = pkCe.66
+        pkT   = pk(x.112)
+        r1    = r1.68
+        r2    = r2.69
+        sC    = sign(<'CA', certT.60, 
+                      cert(x.103, sign(<x.103, z.79, 'chip'>, ca_sk), z.79), r2.69, cip.61, 
+                      pkCe.66, cipe.62>,
+                     x.112)
+        sT    = sT.71
+        z     = cert_id(certT.60)
+        z.1   = verify(cert_sig(certT.60),
+                       <cert_pk(certT.60), cert_id(certT.60), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.71, <'TA', IDc.57, r1.68>, pk(x.112))
+        z.4   = true
+        z.5   = z.79
+    
+    13. IDc   = IDc.58
+        certC = certC.60
+        certT = certT.61
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sC.71
+        sT    = sign(<'TA', IDc.58, r1.69>, x.114)
+        z     = cert_id(certT.61)
+        z.1   = verify(cert_sig(certT.61),
+                       <cert_pk(certT.61), cert_id(certT.61), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.60),
+                       <cert_pk(certC.60), cert_id(certC.60), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.71,
+                       <'CA', certT.61, certC.60, r2.70, cip.62, pkCe.67, cipe.63>, pk(x.114))
+        z.5   = cert_id(certC.60)
+    
+    14. IDc   = IDc.58
+        certC = certC.60
+        certT = certT.61
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sign(<'CA', certT.61, certC.60, r2.70, cip.62, pkCe.67, cipe.63>,
+                     x.114)
+        sT    = sign(<'TA', IDc.58, r1.69>, x.114)
+        z     = cert_id(certT.61)
+        z.1   = verify(cert_sig(certT.61),
+                       <cert_pk(certT.61), cert_id(certT.61), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.60),
+                       <cert_pk(certC.60), cert_id(certC.60), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.60)
+    
+    15. IDc   = IDc.58
+        certC = certC.60
+        certT = cert(x.105, x.106, z.74)
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sign(<'CA', cert(x.105, x.106, z.74), certC.60, r2.70, cip.62, 
+                      pkCe.67, cipe.63>,
+                     x.114)
+        sT    = sT.72
+        z     = z.74
+        z.1   = verify(x.106, <x.105, z.74, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.60),
+                       <cert_pk(certC.60), cert_id(certC.60), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.72, <'TA', IDc.58, r1.69>, pk(x.114))
+        z.4   = true
+        z.5   = cert_id(certC.60)
+    
+    16. IDc   = IDc.58
+        certC = cert(x.104, x.105, z.80)
+        certT = certT.61
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sign(<'CA', certT.61, cert(x.104, x.105, z.80), r2.70, cip.62, 
+                      pkCe.67, cipe.63>,
+                     x.114)
+        sT    = sT.72
+        z     = cert_id(certT.61)
+        z.1   = verify(cert_sig(certT.61),
+                       <cert_pk(certT.61), cert_id(certT.61), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.105, <x.104, z.80, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.72, <'TA', IDc.58, r1.69>, pk(x.114))
+        z.4   = true
+        z.5   = z.80
+    
+    17. IDc   = IDc.58
+        certC = cert(x.104, sign(<x.104, z.80, 'chip'>, ca_sk), z.80)
+        certT = cert(x.106, sign(<x.106, z.74, 'terminal'>, ca_sk), z.74)
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sign(<'CA', 
+                      cert(x.106, sign(<x.106, z.74, 'terminal'>, ca_sk), z.74), 
+                      cert(x.104, sign(<x.104, z.80, 'chip'>, ca_sk), z.80), r2.70, cip.62, 
+                      pkCe.67, cipe.63>,
+                     x.114)
+        sT    = sT.72
+        z     = z.74
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.72, <'TA', IDc.58, r1.69>, pk(x.114))
+        z.4   = true
+        z.5   = z.80
+    
+    18. IDc   = IDc.59
+        certC = certC.61
+        certT = cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75)
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sC.72
+        sT    = sign(<'TA', IDc.59, r1.70>, x.116)
+        z     = z.75
+        z.1   = true
+        z.2   = verify(cert_sig(certC.61),
+                       <cert_pk(certC.61), cert_id(certC.61), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.72,
+                       <'CA', cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75), 
+                        certC.61, r2.71, cip.63, pkCe.68, cipe.64>,
+                       pk(x.116))
+        z.5   = cert_id(certC.61)
+    
+    19. IDc   = IDc.59
+        certC = certC.61
+        certT = cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75)
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sign(<'CA', 
+                      cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75), certC.61, 
+                      r2.71, cip.63, pkCe.68, cipe.64>,
+                     x.116)
+        sT    = sign(<'TA', IDc.59, r1.70>, x.116)
+        z     = z.75
+        z.1   = true
+        z.2   = verify(cert_sig(certC.61),
+                       <cert_pk(certC.61), cert_id(certC.61), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.61)
+    
+    20. IDc   = IDc.59
+        certC = cert(x.105, x.106, z.81)
+        certT = cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75)
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sign(<'CA', 
+                      cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75), 
+                      cert(x.105, x.106, z.81), r2.71, cip.63, pkCe.68, cipe.64>,
+                     x.116)
+        sT    = sT.73
+        z     = z.75
+        z.1   = true
+        z.2   = verify(x.106, <x.105, z.81, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.73, <'TA', IDc.59, r1.70>, pk(x.116))
+        z.4   = true
+        z.5   = z.81
+    
+    21. IDc   = IDc.59
+        certC = cert(x.105, sign(<x.105, z.81, 'chip'>, ca_sk), z.81)
+        certT = cert(x.107, x.108, z.75)
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sign(<'CA', cert(x.107, x.108, z.75), 
+                      cert(x.105, sign(<x.105, z.81, 'chip'>, ca_sk), z.81), r2.71, cip.63, 
+                      pkCe.68, cipe.64>,
+                     x.116)
+        sT    = sT.73
+        z     = z.75
+        z.1   = verify(x.108, <x.107, z.75, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.73, <'TA', IDc.59, r1.70>, pk(x.116))
+        z.4   = true
+        z.5   = z.81
+    
+    22. IDc   = IDc.59
+        certC = cert(x.107, sign(<x.107, z.81, 'chip'>, ca_sk), z.81)
+        certT = certT.62
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sC.72
+        sT    = sign(<'TA', IDc.59, r1.70>, x.116)
+        z     = cert_id(certT.62)
+        z.1   = verify(cert_sig(certT.62),
+                       <cert_pk(certT.62), cert_id(certT.62), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.72,
+                       <'CA', certT.62, cert(x.107, sign(<x.107, z.81, 'chip'>, ca_sk), z.81), 
+                        r2.71, cip.63, pkCe.68, cipe.64>,
+                       pk(x.116))
+        z.5   = z.81
+    
+    23. IDc   = IDc.59
+        certC = cert(x.107, sign(<x.107, z.81, 'chip'>, ca_sk), z.81)
+        certT = certT.62
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sign(<'CA', certT.62, 
+                      cert(x.107, sign(<x.107, z.81, 'chip'>, ca_sk), z.81), r2.71, cip.63, 
+                      pkCe.68, cipe.64>,
+                     x.116)
+        sT    = sign(<'TA', IDc.59, r1.70>, x.116)
+        z     = cert_id(certT.62)
+        z.1   = verify(cert_sig(certT.62),
+                       <cert_pk(certT.62), cert_id(certT.62), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.81
+    
+    24. IDc   = IDc.60
+        certC = certC.62
+        certT = cert(x.109, x.110, z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sC.73
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = z.76
+        z.1   = verify(x.110, <x.109, z.76, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.62),
+                       <cert_pk(certC.62), cert_id(certC.62), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.73,
+                       <'CA', cert(x.109, x.110, z.76), certC.62, r2.72, cip.64, pkCe.69, 
+                        cipe.65>,
+                       pk(x.118))
+        z.5   = cert_id(certC.62)
+    
+    25. IDc   = IDc.60
+        certC = certC.62
+        certT = cert(x.109, x.110, z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sign(<'CA', cert(x.109, x.110, z.76), certC.62, r2.72, cip.64, 
+                      pkCe.69, cipe.65>,
+                     x.118)
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = z.76
+        z.1   = verify(x.110, <x.109, z.76, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.62),
+                       <cert_pk(certC.62), cert_id(certC.62), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.62)
+    
+    26. IDc   = IDc.60
+        certC = cert(x.106, x.107, z.82)
+        certT = cert(x.109, x.110, z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sign(<'CA', cert(x.109, x.110, z.76), cert(x.106, x.107, z.82), 
+                      r2.72, cip.64, pkCe.69, cipe.65>,
+                     x.118)
+        sT    = sT.74
+        z     = z.76
+        z.1   = verify(x.110, <x.109, z.76, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.107, <x.106, z.82, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.74, <'TA', IDc.60, r1.71>, pk(x.118))
+        z.4   = true
+        z.5   = z.82
+    
+    27. IDc   = IDc.60
+        certC = cert(x.108, x.109, z.82)
+        certT = certT.63
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sC.73
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = cert_id(certT.63)
+        z.1   = verify(cert_sig(certT.63),
+                       <cert_pk(certT.63), cert_id(certT.63), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.109, <x.108, z.82, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.73,
+                       <'CA', certT.63, cert(x.108, x.109, z.82), r2.72, cip.64, pkCe.69, 
+                        cipe.65>,
+                       pk(x.118))
+        z.5   = z.82
+    
+    28. IDc   = IDc.60
+        certC = cert(x.108, x.109, z.82)
+        certT = certT.63
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sign(<'CA', certT.63, cert(x.108, x.109, z.82), r2.72, cip.64, 
+                      pkCe.69, cipe.65>,
+                     x.118)
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = cert_id(certT.63)
+        z.1   = verify(cert_sig(certT.63),
+                       <cert_pk(certT.63), cert_id(certT.63), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.109, <x.108, z.82, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.82
+    
+    29. IDc   = IDc.60
+        certC = cert(x.108, sign(<x.108, z.82, 'chip'>, ca_sk), z.82)
+        certT = cert(x.110, sign(<x.110, z.76, 'terminal'>, ca_sk), z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sC.73
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = z.76
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.73,
+                       <'CA', cert(x.110, sign(<x.110, z.76, 'terminal'>, ca_sk), z.76), 
+                        cert(x.108, sign(<x.108, z.82, 'chip'>, ca_sk), z.82), r2.72, cip.64, 
+                        pkCe.69, cipe.65>,
+                       pk(x.118))
+        z.5   = z.82
+    
+    30. IDc   = IDc.60
+        certC = cert(x.108, sign(<x.108, z.82, 'chip'>, ca_sk), z.82)
+        certT = cert(x.110, sign(<x.110, z.76, 'terminal'>, ca_sk), z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sign(<'CA', 
+                      cert(x.110, sign(<x.110, z.76, 'terminal'>, ca_sk), z.76), 
+                      cert(x.108, sign(<x.108, z.82, 'chip'>, ca_sk), z.82), r2.72, cip.64, 
+                      pkCe.69, cipe.65>,
+                     x.118)
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = z.76
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.82
+    
+    31. IDc   = IDc.61
+        certC = cert(x.109, x.110, z.83)
+        certT = cert(x.112, sign(<x.112, z.77, 'terminal'>, ca_sk), z.77)
+        cip   = cip.65
+        cipe  = cipe.66
+        pkCe  = pkCe.70
+        pkT   = pk(x.120)
+        r1    = r1.72
+        r2    = r2.73
+        sC    = sC.74
+        sT    = sign(<'TA', IDc.61, r1.72>, x.120)
+        z     = z.77
+        z.1   = true
+        z.2   = verify(x.110, <x.109, z.83, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.74,
+                       <'CA', cert(x.112, sign(<x.112, z.77, 'terminal'>, ca_sk), z.77), 
+                        cert(x.109, x.110, z.83), r2.73, cip.65, pkCe.70, cipe.66>,
+                       pk(x.120))
+        z.5   = z.83
+    
+    32. IDc   = IDc.61
+        certC = cert(x.109, x.110, z.83)
+        certT = cert(x.112, sign(<x.112, z.77, 'terminal'>, ca_sk), z.77)
+        cip   = cip.65
+        cipe  = cipe.66
+        pkCe  = pkCe.70
+        pkT   = pk(x.120)
+        r1    = r1.72
+        r2    = r2.73
+        sC    = sign(<'CA', 
+                      cert(x.112, sign(<x.112, z.77, 'terminal'>, ca_sk), z.77), 
+                      cert(x.109, x.110, z.83), r2.73, cip.65, pkCe.70, cipe.66>,
+                     x.120)
+        sT    = sign(<'TA', IDc.61, r1.72>, x.120)
+        z     = z.77
+        z.1   = true
+        z.2   = verify(x.110, <x.109, z.83, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.83
+    
+    33. IDc   = IDc.61
+        certC = cert(x.109, sign(<x.109, z.83, 'chip'>, ca_sk), z.83)
+        certT = cert(x.111, x.112, z.77)
+        cip   = cip.65
+        cipe  = cipe.66
+        pkCe  = pkCe.70
+        pkT   = pk(x.120)
+        r1    = r1.72
+        r2    = r2.73
+        sC    = sC.74
+        sT    = sign(<'TA', IDc.61, r1.72>, x.120)
+        z     = z.77
+        z.1   = verify(x.112, <x.111, z.77, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.74,
+                       <'CA', cert(x.111, x.112, z.77), 
+                        cert(x.109, sign(<x.109, z.83, 'chip'>, ca_sk), z.83), r2.73, cip.65, 
+                        pkCe.70, cipe.66>,
+                       pk(x.120))
+        z.5   = z.83
+    
+    34. IDc   = IDc.61
+        certC = cert(x.109, sign(<x.109, z.83, 'chip'>, ca_sk), z.83)
+        certT = cert(x.111, x.112, z.77)
+        cip   = cip.65
+        cipe  = cipe.66
+        pkCe  = pkCe.70
+        pkT   = pk(x.120)
+        r1    = r1.72
+        r2    = r2.73
+        sC    = sign(<'CA', cert(x.111, x.112, z.77), 
+                      cert(x.109, sign(<x.109, z.83, 'chip'>, ca_sk), z.83), r2.73, cip.65, 
+                      pkCe.70, cipe.66>,
+                     x.120)
+        sT    = sign(<'TA', IDc.61, r1.72>, x.120)
+        z     = z.77
+        z.1   = verify(x.112, <x.111, z.77, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.83
+    
+    35. IDc   = IDc.62
+        certC = cert(x.110, x.111, z.84)
+        certT = cert(x.113, x.114, z.78)
+        cip   = cip.66
+        cipe  = cipe.67
+        pkCe  = pkCe.71
+        pkT   = pk(x.122)
+        r1    = r1.73
+        r2    = r2.74
+        sC    = sC.75
+        sT    = sign(<'TA', IDc.62, r1.73>, x.122)
+        z     = z.78
+        z.1   = verify(x.114, <x.113, z.78, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.111, <x.110, z.84, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.75,
+                       <'CA', cert(x.113, x.114, z.78), cert(x.110, x.111, z.84), r2.74, 
+                        cip.66, pkCe.71, cipe.67>,
+                       pk(x.122))
+        z.5   = z.84
+    
+    36. IDc   = IDc.62
+        certC = cert(x.110, x.111, z.84)
+        certT = cert(x.113, x.114, z.78)
+        cip   = cip.66
+        cipe  = cipe.67
+        pkCe  = pkCe.71
+        pkT   = pk(x.122)
+        r1    = r1.73
+        r2    = r2.74
+        sC    = sign(<'CA', cert(x.113, x.114, z.78), cert(x.110, x.111, z.84), 
+                      r2.74, cip.66, pkCe.71, cipe.67>,
+                     x.122)
+        sT    = sign(<'TA', IDc.62, r1.73>, x.122)
+        z     = z.78
+        z.1   = verify(x.114, <x.113, z.78, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.111, <x.110, z.84, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.84
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2, skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z, z.1>),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>,
+                          <z.1, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'CA', 
+                                cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                               ~ltk.1)
+                     ) @ #vk.3 )
+                case CA_INIT_T
+                solve( !KU( sign(<'TA', ~id_c, ~r1>, ~skT) ) @ #vk.13 )
+                  case TA_RESPONSE_T
+                  solve( !KU( ~r2 ) @ #vk.31 )
+                    case CA_INIT_C
+                    solve( !KU( ~id_c ) @ #vk.38 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~r1 ) @ #vk.39 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                               ) @ #vk.21 )
+                          case CA_Sign_ltk
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.25 )
+                            case CA_FINISH_C
+                            solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                   ) @ #vk.34 )
+                              case CA_INIT_C
+                              solve( !KU( sign(<'TA', ~id_c.2, ~r1.2>, x) ) @ #vk.42 )
+                                case TA_RESPONSE_T
+                                solve( !KU( cert(pk(~skT.2), sign(<pk(~skT.2), z, 'terminal'>, ca_sk), z)
+                                       ) @ #vk.44 )
+                                  case CA_Sign_ltk
+                                  solve( !KU( ~id_c.2 ) @ #vk.46 )
+                                    case TA_CHALLENGE_C
+                                    solve( !KU( ~r1.1 ) @ #vk.47 )
+                                      case TA_CHALLENGE_C
+                                      solve( !KU( pk(~skCe) ) @ #vk.43 )
+                                        case CA_INIT_C
+                                        solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.26 )
+                                          case CA_INIT_T
+                                          solve( !KU( encaps(~ke, pk(~skCe)) ) @ #vk.29 )
+                                            case CA_INIT_T
+                                            SOLVED // trace found
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2, skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z, z.1>),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>,
+                          <z.1, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case CA_FINISH_C
+                solve( CAInitC( <$C, iid.1>, cert(pk(x), x.1, $T), id_c.1, r1.1, r2.1,
+                                skCe.1
+                       ) ▶₁ #i2 )
+                  case CA_INIT_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( kdf(<'KEY', 
+                                             cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), 
+                                             ~r2.1, cip, pk(~skCe.1), cipe>,
+                                            <z, z.1>),
+                                        <cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1, 
+                                         cip, pk(~skCe.1), cipe>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( CAInitT( <$T, iid.3>, id_c.3,
+                                        cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1,
+                                        <z, cip>, <z.1, cipe>, pk(~skCe.1)
+                               ) ▶₁ #j2 )
+                          case CA_INIT_T
+                          solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( !KU( sign(<'CA', 
+                                              cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                   $T), 
+                                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                              encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                             ~ltk.1)
+                                   ) @ #vk.3 )
+                              case CA_INIT_T
+                              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~skT) ) @ #vk.18 )
+                                case TA_RESPONSE_T
+                                solve( !KU( sign(<'CA', 
+                                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                       $T), 
+                                                  cert(pk(~skC), sign(<pk(~skC), $C, 'chip'>, ca_sk), $C), 
+                                                  ~r2.1, encaps(~k.1, pk(~skC)), pk(~skCe.1), 
+                                                  encaps(~ke.1, pk(~skCe.1))>,
+                                                 ~ltk.1)
+                                       ) @ #vk.49 )
+                                  case CA_INIT_T
+                                  solve( !KU( sign(<'TA', ~id_c.1, ~r1.1>, ~ltk.1) ) @ #vk.52 )
+                                    case TA_RESPONSE_T
+                                    solve( !KU( ~r2 ) @ #vk.46 )
+                                      case CA_INIT_C
+                                      solve( !KU( ~r2.1 ) @ #vk.58 )
+                                        case CA_INIT_C
+                                        solve( !KU( ~id_c ) @ #vk.62 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( ~r1 ) @ #vk.63 )
+                                            case TA_CHALLENGE_C
+                                            solve( !KU( ~id_c.1 ) @ #vk.64 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( ~r1.1 ) @ #vk.65 )
+                                                case TA_CHALLENGE_C
+                                                solve( !KU( cert(pk(~skT),
+                                                                 sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                                                       ) @ #vk.35 )
+                                                  case CA_Sign_ltk
+                                                  solve( !KU( kdf(<'CNF', 
+                                                                   cert(pk(~skT),
+                                                                        sign(<pk(~skT), $T, 'terminal'>,
+                                                                             ca_sk),
+                                                                        $T), 
+                                                                   cert(pk(~ltk),
+                                                                        sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                                        $C), 
+                                                                   ~r2, encaps(~k, pk(~ltk)), pk(~skCe), 
+                                                                   encaps(~ke, pk(~skCe))>,
+                                                                  <~k, ~ke>)
+                                                         ) @ #vk.39 )
+                                                    case CA_FINISH_C
+                                                    solve( !KU( cert(pk(~ltk),
+                                                                     sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                                           ) @ #vk.52 )
+                                                      case CA_INIT_C
+                                                      solve( !KU( sign(<'TA', ~id_c.4, ~r1.4>, x) ) @ #vk.68 )
+                                                        case TA_RESPONSE_T
+                                                        solve( !KU( cert(pk(~skT.3),
+                                                                         sign(<pk(~skT.3), z, 'terminal'>,
+                                                                              ca_sk),
+                                                                         z)
+                                                               ) @ #vk.70 )
+                                                          case CA_Sign_ltk
+                                                          solve( !KU( ~id_c.4 ) @ #vk.72 )
+                                                            case TA_CHALLENGE_C
+                                                            solve( !KU( ~r1.3 ) @ #vk.73 )
+                                                              case TA_CHALLENGE_C
+                                                              solve( !KU( pk(~skCe) ) @ #vk.61 )
+                                                                case CA_INIT_C
+                                                                solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.38 )
+                                                                  case CA_INIT_T
+                                                                  solve( !KU( encaps(~ke, pk(~skCe))
+                                                                         ) @ #vk.41 )
+                                                                    case CA_INIT_T
+                                                                    solve( !KU( cert(pk(~ltk.1),
+                                                                                     sign(<pk(~ltk.1), $T, 
+                                                                                           'terminal'>,
+                                                                                          ca_sk),
+                                                                                     $T)
+                                                                           ) @ #vk.68 )
+                                                                      case CA_Sign_ltk
+                                                                      solve( !KU( kdf(<'CNF', 
+                                                                                       cert(pk(~ltk.1),
+                                                                                            sign(<pk(~ltk.1), 
+                                                                                                  $T, 
+                                                                                                  'terminal'>,
+                                                                                                 ca_sk),
+                                                                                            $T), 
+                                                                                       cert(pk(~skC),
+                                                                                            sign(<pk(~skC), 
+                                                                                                  $C, 'chip'>,
+                                                                                                 ca_sk),
+                                                                                            $C), 
+                                                                                       ~r2.1, 
+                                                                                       encaps(~k.1,
+                                                                                              pk(~skC)), 
+                                                                                       pk(~skCe.1), 
+                                                                                       encaps(~ke.1,
+                                                                                              pk(~skCe.1))
+                                                                                      >,
+                                                                                      <~k.1, ~ke.1>)
+                                                                             ) @ #vk.69 )
+                                                                        case CA_FINISH_C
+                                                                        solve( !KU( cert(pk(~skC),
+                                                                                         sign(<pk(~skC), $C, 
+                                                                                               'chip'>,
+                                                                                              ca_sk),
+                                                                                         $C)
+                                                                               ) @ #vk.70 )
+                                                                          case CA_INIT_C
+                                                                          solve( !KU( sign(<'TA', ~id_c.5, 
+                                                                                            ~r1.5>,
+                                                                                           x)
+                                                                                 ) @ #vk.76 )
+                                                                            case TA_RESPONSE_T
+                                                                            solve( !KU( cert(pk(~skT.4),
+                                                                                             sign(<
+                                                                                                   pk(~skT.4), 
+                                                                                                   z, 
+                                                                                                   'terminal'
+                                                                                                  >,
+                                                                                                  ca_sk),
+                                                                                             z)
+                                                                                   ) @ #vk.78 )
+                                                                              case CA_Sign_ltk
+                                                                              solve( !KU( ~id_c.5 ) @ #vk.80 )
+                                                                                case TA_CHALLENGE_C
+                                                                                solve( !KU( ~r1.4 ) @ #vk.81 )
+                                                                                  case TA_CHALLENGE_C
+                                                                                  solve( !KU( pk(~skCe.1)
+                                                                                         ) @ #vk.79 )
+                                                                                    case CA_INIT_C
+                                                                                    solve( !KU( encaps(~k.1,
+                                                                                                       pk(~skC))
+                                                                                           ) @ #vk.78 )
+                                                                                      case CA_INIT_T
+                                                                                      solve( !KU( encaps(~ke.1,
+                                                                                                         pk(~skCe.1))
+                                                                                             ) @ #vk.79 )
+                                                                                        case CA_INIT_T
+                                                                                        SOLVED // trace found
+                                                                                      qed
+                                                                                    qed
+                                                                                  qed
+                                                                                qed
+                                                                              qed
+                                                                            qed
+                                                                          qed
+                                                                        qed
+                                                                      qed
+                                                                    qed
+                                                                  qed
+                                                                qed
+                                                              qed
+                                                            qed
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>,
+                      cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                      r2, skCe
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case CA_FINISH_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.30 )
+            case CA_INIT_T
+            solve( !KU( ~ke ) @ #vk.31 )
+              case CA_INIT_T
+              solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                     ) @ #vk.16 )
+                case CA_INIT_C
+                solve( !KU( ~ltk.1 ) @ #vk.32 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.32 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_cert
+                solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.35 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.33 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.33 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_sign
+                  by solve( !KU( ca_sk ) @ #vk.39 )
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>,
+                      cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                      r2, skCe
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              by contradiction /* from formulas */
+            next
+              case split_case_2
+              solve( !KU( sign(<'CA', 
+                                cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                               ~ltk.1)
+                     ) @ #vk.22 )
+                case CA_INIT_T
+                solve( !KU( sign(<'TA', ~id_c, ~r1>, ~skT) ) @ #vk.32 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'CNF', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  <~k, ~ke>)
+                         ) @ #vk.5 )
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.48 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.49 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.50 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~skT ) @ #vk.37 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.42 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case CA_FINISH_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.30 )
+            case CA_INIT_T
+            solve( !KU( ~ke ) @ #vk.31 )
+              case CA_INIT_T
+              solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                     ) @ #vk.16 )
+                case CA_INIT_C
+                solve( !KU( ~ltk.1 ) @ #vk.32 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.32 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_cert
+                solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.35 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.33 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.33 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_sign
+                  by solve( !KU( ca_sk ) @ #vk.39 )
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_C
+      by contradiction /* from formulas */
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case CA_FINISH_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.30 )
+            case CA_INIT_T
+            solve( !KU( ~ke ) @ #vk.31 )
+              case CA_INIT_T
+              solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                     ) @ #vk.16 )
+                case CA_INIT_C
+                solve( !KU( ~ltk.1 ) @ #vk.32 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.32 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_cert
+                solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.35 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.33 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.33 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_sign
+                  by solve( !KU( ca_sk ) @ #vk.39 )
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2, skCe
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z, z.1>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case CA_FINISH_C
+              solve( CAInitC( <$C, iid.1>,
+                              cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2,
+                              ~skCe
+                     ) ▶₁ #j )
+                case CA_INIT_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                                 encaps(~ke, pkCe)>,
+                                <~k, ~ke>),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>,
+                            <~ke, encaps(~ke, pkCe)>, pkCe
+                   ) ▶₁ #j )
+              case CA_INIT_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2, skCe
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z, z.1>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case CA_FINISH_C
+              solve( CAInitC( <$C, iid.1>,
+                              cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2,
+                              ~skCe
+                     ) ▶₁ #j )
+                case CA_INIT_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                                 encaps(~ke, pkCe)>,
+                                <~k, ~ke>),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>,
+                            <~ke, encaps(~ke, pkCe)>, pkCe
+                   ) ▶₁ #j )
+              case CA_INIT_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_C
+    solve( CAInitC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2, skCe
+           ) ▶₁ #i )
+      case CA_INIT_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                 pk(~skCe), cipe>,
+                                <z, z.1>),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  next
+    case CA_FINISH_T
+    solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+           ) ▶₁ #i )
+      case CA_INIT_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                               cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                               encaps(~ke, pkCe)>,
+                              <~k, ~ke>),
+                          sid2, $T, 'terminal', B
+               ) @ #j )
+          case CA_FINISH_T
+          by contradiction /* from formulas */
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2, skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>,
+                          <ke, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                 ~ltk.1)
+                       ) @ #vk.3 )
+                  case CA_INIT_T
+                  solve( !KU( sign(<'TA', ~id_c, ~r1>, ~skT) ) @ #vk.13 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.18 )
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.48 )
+                        case CA_INIT_T
+                        solve( !KU( ~ke ) @ #vk.49 )
+                          case CA_INIT_T
+                          solve( !KU( ~ltk ) @ #vk.50 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( ~skT ) @ #vk.37 )
+                      case Corrupt_ltk
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                      <~k, ~ke>)
+                             ) @ #vk.19 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.50 )
+                          case CA_INIT_T
+                          solve( !KU( ~ke ) @ #vk.51 )
+                            case CA_INIT_T
+                            solve( !KU( ~ltk ) @ #vk.52 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.42 )
+                    case Corrupt_ltk
+                    solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.17 )
+                      case TA_RESPONSE_T
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                      <~k, ~ke>)
+                             ) @ #vk.25 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.51 )
+                          case CA_INIT_T
+                          solve( !KU( ~ke ) @ #vk.52 )
+                            case CA_INIT_T
+                            solve( !KU( ~ltk ) @ #vk.53 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                      <~k, ~ke>)
+                             ) @ #vk.25 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.52 )
+                          case CA_INIT_T
+                          solve( !KU( ~ke ) @ #vk.53 )
+                            case CA_INIT_T
+                            solve( !KU( ~ltk ) @ #vk.54 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2, skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z, z.1>),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>,
+                          <z.1, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'CA', 
+                                cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                               ~ltk.1)
+                     ) @ #vk.4 )
+                case CA_INIT_T
+                solve( !KU( sign(<'TA', ~id_c, ~r1>, ~skT) ) @ #vk.14 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'KEY', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  <~k, ~ke>)
+                         ) @ #vk.4 )
+                    case Reveal_session
+                    by contradiction /* from formulas */
+                  next
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.49 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.50 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.51 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~skT ) @ #vk.38 )
+                    case Corrupt_ltk
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.6 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.51 )
+                        case CA_INIT_T
+                        solve( !KU( ~ke ) @ #vk.52 )
+                          case CA_INIT_T
+                          solve( !KU( ~ltk ) @ #vk.53 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.43 )
+                  case Corrupt_ltk
+                  solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.18 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.52 )
+                        case CA_INIT_T
+                        solve( !KU( ~ke ) @ #vk.53 )
+                          case CA_INIT_T
+                          solve( !KU( ~ltk ) @ #vk.54 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.53 )
+                        case CA_INIT_T
+                        solve( !KU( ~ke ) @ #vk.54 )
+                          case CA_INIT_T
+                          solve( !KU( ~ltk ) @ #vk.55 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1 ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !KU( ~iid ) @ #vk.6 )
+    case CA_INIT_C
+    by contradiction /* cyclic */
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !KU( sign(<'CA', 
+                      cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                      cert(x.1, sign(<x.1, $A, 'chip'>, ca_sk), $A), r2, cip, pkCe, cipe>,
+                     x)
+           ) @ #vk.17 )
+      case c_sign
+      solve( !KU( cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T)
+             ) @ #vk.2 )
+        case CA_Sign_ltk
+        solve( !KU( ~ltk ) @ #vk.28 )
+          case Corrupt_ltk
+          solve( !KU( sign(<'TA', IDc, r1>, ~ltk) ) @ #vk.13 )
+            case c_sign
+            solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.17 )
+              case CA_Sign_ltk
+              solve( !KU( kdf(<'CNF', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                               cert(pk(~ltk.1), sign(<pk(~ltk.1), $A.1, 'chip'>, ca_sk), $A.1), r2, 
+                               cip, pkCe, cipe>,
+                              <z, z.1>)
+                     ) @ #vk.29 )
+                case c_kdf
+                solve( splitEqs(0) )
+                  case split_case_3
+                  solve( !KU( encaps(z, pk(~ltk.2)) ) @ #vk.29 )
+                    case c_encaps
+                    solve( !KU( decaps(cipe, skCe) ) @ #vk.37 )
+                      case c_decaps
+                      solve( !KU( pk(~ltk.2) ) @ #vk.38 )
+                        case CA_Sign_ltk
+                        SOLVED // trace found
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !Pk( T, pk(x.1), 'terminal' ) ▶₂ #i )
+    case Generate_terminal_key_pair
+    solve( !KU( sign(<'TA', IDc, r1>, ~ltk) ) @ #vk.7 )
+      case TA_RESPONSE_T
+      by contradiction /* from formulas */
+    next
+      case c_sign
+      solve( !KU( ~ltk ) @ #vk.26 )
+        case Corrupt_ltk
+        by contradiction /* from formulas */
+      qed
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2, skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z, z.1>),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>,
+                          <z.1, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'CA', 
+                                cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                               ~ltk.1)
+                     ) @ #vk.4 )
+                case CA_INIT_T
+                solve( !KU( sign(<'TA', ~id_c, ~r1>, ~skT) ) @ #vk.14 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'KEY', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  <~k, ~ke>)
+                         ) @ #vk.4 )
+                    case Reveal_session
+                    by contradiction /* from formulas */
+                  next
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.49 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.50 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.51 )
+                          case Corrupt_ltk
+                          by solve( !KU( ~skCe ) @ #vk.52 )
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~skT ) @ #vk.38 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.43 )
+                  case Corrupt_ltk
+                  solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.18 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.52 )
+                        case CA_INIT_T
+                        solve( !KU( ~ke ) @ #vk.53 )
+                          case CA_INIT_T
+                          solve( !KU( ~ltk ) @ #vk.54 )
+                            case Corrupt_ltk
+                            by solve( !KU( ~skCe ) @ #vk.55 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    by contradiction /* cyclic */
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 138.92s
+  
+  session_exist (exists-trace): verified (24 steps)
+  two_session_exist (exists-trace): verified (46 steps)
+  weak_agreement_C (all-traces): verified (8 steps)
+  weak_agreement_T (all-traces): verified (20 steps)
+  agreement_C (all-traces): verified (20 steps)
+  agreement_T (all-traces): verified (20 steps)
+  aliveness (all-traces): verified (21 steps)
+  session_uniqueness (all-traces): verified (37 steps)
+  consistency (all-traces): verified (35 steps)
+  key_secrecy (all-traces): verified (37 steps)
+  chip_hiding (all-traces): verified (4 steps)
+  nonRepudiation_terminal (exists-trace): verified (14 steps)
+  nonRepudiation_chip (exists-trace): falsified - no trace found (7 steps)
+  pfs (all-traces): verified (27 steps)
+
+==============================================================================
diff --git a/results/Basic/two_session_exist.err.45214997 b/results/45991549.err.PFS_ALL_KemPQEAC_TAMARIN
similarity index 86%
rename from results/Basic/two_session_exist.err.45214997
rename to results/45991549.err.PFS_ALL_KemPQEAC_TAMARIN
index 1f61aae55c21ecd2bc906c49f8eb899cc6d49e2d..35cf59a4de87742e8526e575ef29d8946ab1831a 100644
--- a/results/Basic/two_session_exist.err.45214997
+++ b/results/45991549.err.PFS_ALL_KemPQEAC_TAMARIN
@@ -30,3 +30,5 @@
 [Saturating Sources] Step 2/5
 [Saturating Sources] Step 1/5
 [Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991549.out.PFS_ALL_KemPQEAC_TAMARIN b/results/45991549.out.PFS_ALL_KemPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..222184394757fd79a12a23c2ead8c50c00eb01cb
--- /dev/null
+++ b/results/45991549.out.PFS_ALL_KemPQEAC_TAMARIN
@@ -0,0 +1,5341 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory KemPQEAC begin
+
+// Function signature and definition of the equational theory E
+
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, decaps/2, encaps/2, fst/1, kdf/2, mac/2, pair/2, pk/1,
+           sdec/2, senc/2, sign/2, snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    decaps(encaps(k, pk(sk)), sk) = k,
+    fst(<x.1, x.2>) = x.1,
+    sdec(senc(x.1, x.2), x.2) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [ !Pk( $A, pk(~ltk), 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [ Out( <certT, '1', 't'> ), Out( ~iid ), TAInitT( <$T, ~iid> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [ In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~kTA ), Fr( ~iid )
+   ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, encaps(~kTA, cert_pk(certT)), '2', 'c'> ),
+   TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1,
+                 <~kTA, encaps(~kTA, cert_pk(certT))>
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [ In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~kTA ), Fr( ~iid )
+     ]
+    --[ Eq( z.1, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, encaps(~kTA, z), '2', 'c'> ),
+     TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, <~kTA, encaps(~kTA, z)> )
+     ]
+    variants (modulo AC)
+    1. certT = certT.14
+       z     = cert_pk(certT.14)
+       z.1   = verify(cert_sig(certT.14),
+                      <cert_pk(certT.14), cert_id(certT.14), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(z.27, sign(<z.27, x.44, 'terminal'>, ca_sk), x.44)
+       z     = z.27
+       z.1   = true
+    
+    3. certT = cert(z.28, x.45, x.46)
+       z     = z.28
+       z.1   = verify(x.45, <z.28, x.46, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, cTA, '2', 'c'> ), TAInitT( <$T, iid> ),
+   !Ltk( $T, ~skT, 'terminal' )
+   ]
+  -->
+   [
+   Out( <kdf(<'TCNF', r1>, decaps(cTA, ~skT)), '3', 't'> ),
+   TAResponseT( <$T, iid>, id_c, kdf(<'TMAC', r1>, decaps(cTA, ~skT)),
+                kdf(<'TENC', r1>, decaps(cTA, ~skT))
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_RESPONSE_T:
+     [
+     In( <id_c, r1, cTA, '2', 'c'> ), TAInitT( <$T, iid> ),
+     !Ltk( $T, ~skT, 'terminal' )
+     ]
+    -->
+     [
+     Out( <kdf(<'TCNF', r1>, z), '3', 't'> ),
+     TAResponseT( <$T, iid>, id_c, kdf(<'TMAC', r1>, z), kdf(<'TENC', r1>, z)
+     )
+     ]
+    variants (modulo AC)
+    1. ~skT  = ~skT.14
+       cTA   = cTA.15
+       z     = decaps(cTA.15, ~skT.14)
+    
+    2. ~skT  = ~skT.22
+       cTA   = encaps(z.31, pk(~skT.22))
+       z     = z.31
+  */
+
+rule (modulo E) TA_COMPLETE_C:
+   [
+   In( <kTCNF_T, '3', 't'> ),
+   TAChallengeC( <$C, iid>, certT, id_c, r1, <kTA, cTA> )
+   ]
+  --[
+  Eq( kTCNF_T, kdf(<'TCNF', r1>, kTA) ),
+  CompletedTA( $C, iid, cert_id(certT) )
+  ]->
+   [
+   TACompleteC( <$C, iid>, certT, id_c, r1, <kTA, cTA>,
+                kdf(<'TMAC', r1>, kTA), kdf(<'TENC', r1>, kTA)
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [
+     In( <kTCNF_T, '3', 't'> ),
+     TAChallengeC( <$C, iid>, certT, id_c, r1, <kTA, cTA> )
+     ]
+    --[ Eq( kTCNF_T, kdf(<'TCNF', r1>, kTA) ), CompletedTA( $C, iid, z ) ]->
+     [
+     TACompleteC( <$C, iid>, certT, id_c, r1, <kTA, cTA>,
+                  kdf(<'TMAC', r1>, kTA), kdf(<'TENC', r1>, kTA)
+     )
+     ]
+    variants (modulo AC)
+    1. certT = certT.16
+       z     = cert_id(certT.16)
+    
+    2. certT = cert(x.26, x.27, z.21)
+       z     = z.21
+  */
+
+rule (modulo E) CA_INIT_C:
+   [
+   !Cert( $C, certC, 'chip' ), Fr( ~r2 ), Fr( ~skCe ),
+   TACompleteC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC )
+   ]
+  -->
+   [
+   Out( <senc(<certC, ~r2, pk(~skCe)>, kTENC), '4', 'c'> ),
+   Out( senc(iid, kTENC) ),
+   CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, ~r2, ~skCe
+   )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_INIT_T:
+   [
+   In( <cCA, '4', 'c'> ), TAResponseT( <$T, iid>, id_c, kTMAC, kTENC ),
+   !Cert( $T, certT, 'terminal' ), Fr( ~k ), Fr( ~ke )
+   ]
+  --[ Eq( verify_cert(fst(sdec(cCA, kTENC)), 'chip'), true ) ]->
+   [
+   Out( <encaps(~k, cert_pk(fst(sdec(cCA, kTENC)))), 
+         mac(<'CA', certT, fst(sdec(cCA, kTENC)), fst(snd(sdec(cCA, kTENC))), 
+              encaps(~k, cert_pk(fst(sdec(cCA, kTENC)))), snd(snd(sdec(cCA, kTENC))), 
+              encaps(~ke, snd(snd(sdec(cCA, kTENC))))>,
+             kTMAC), 
+         encaps(~ke, snd(snd(sdec(cCA, kTENC)))), '5', 't'>
+   ),
+   CAInitT( <$T, iid>, id_c, kTMAC, kTENC, fst(sdec(cCA, kTENC)),
+            fst(snd(sdec(cCA, kTENC))),
+            <~k, encaps(~k, cert_pk(fst(sdec(cCA, kTENC))))>,
+            <~ke, encaps(~ke, snd(snd(sdec(cCA, kTENC))))>,
+            snd(snd(sdec(cCA, kTENC)))
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_INIT_T:
+     [
+     In( <cCA, '4', 'c'> ), TAResponseT( <$T, iid>, id_c, kTMAC, kTENC ),
+     !Cert( $T, certT, 'terminal' ), Fr( ~k ), Fr( ~ke )
+     ]
+    --[ Eq( z.4, true ) ]->
+     [
+     Out( <encaps(~k, z), 
+           mac(<'CA', certT, z.1, z.2, encaps(~k, z), z.3, encaps(~ke, z.3)>,
+               kTMAC), 
+           encaps(~ke, z.3), '5', 't'>
+     ),
+     CAInitT( <$T, iid>, id_c, kTMAC, kTENC, z.1, z.2, <~k, encaps(~k, z)>,
+              <~ke, encaps(~ke, z.3)>, z.3
+     )
+     ]
+    variants (modulo AC)
+    1. cCA   = cCA.26
+       kTENC = kTENC.30
+       z     = cert_pk(fst(sdec(cCA.26, kTENC.30)))
+       z.1   = fst(sdec(cCA.26, kTENC.30))
+       z.2   = fst(snd(sdec(cCA.26, kTENC.30)))
+       z.3   = snd(snd(sdec(cCA.26, kTENC.30)))
+       z.4   = verify(cert_sig(fst(sdec(cCA.26, kTENC.30))),
+                      <cert_pk(fst(sdec(cCA.26, kTENC.30))), 
+                       cert_id(fst(sdec(cCA.26, kTENC.30))), 'chip'>,
+                      pk(ca_sk))
+    
+    2. cCA   = senc(x.165, kTENC.87)
+       kTENC = kTENC.87
+       z     = cert_pk(fst(x.165))
+       z.1   = fst(x.165)
+       z.2   = fst(snd(x.165))
+       z.3   = snd(snd(x.165))
+       z.4   = verify(cert_sig(fst(x.165)),
+                      <cert_pk(fst(x.165)), cert_id(fst(x.165)), 'chip'>, pk(ca_sk))
+    
+    3. cCA   = senc(<z.38, z.39, z.40>, kTENC.31)
+       kTENC = kTENC.31
+       z     = cert_pk(z.38)
+       z.1   = z.38
+       z.2   = z.39
+       z.3   = z.40
+       z.4   = verify(cert_sig(z.38), <cert_pk(z.38), cert_id(z.38), 'chip'>,
+                      pk(ca_sk))
+    
+    4. cCA   = senc(<z.95, x.167>, kTENC.88)
+       kTENC = kTENC.88
+       z     = cert_pk(z.95)
+       z.1   = z.95
+       z.2   = fst(x.167)
+       z.3   = snd(x.167)
+       z.4   = verify(cert_sig(z.95), <cert_pk(z.95), cert_id(z.95), 'chip'>,
+                      pk(ca_sk))
+    
+    5. cCA   = senc(<cert(z.93, sign(<z.93, x.167, 'chip'>, ca_sk), x.167), 
+                     z.96, z.97>,
+                    kTENC.88)
+       kTENC = kTENC.88
+       z     = z.93
+       z.1   = cert(z.93, sign(<z.93, x.167, 'chip'>, ca_sk), x.167)
+       z.2   = z.96
+       z.3   = z.97
+       z.4   = true
+    
+    6. cCA   = senc(<cert(z.94, x.168, x.169), z.97, z.98>, kTENC.89)
+       kTENC = kTENC.89
+       z     = z.94
+       z.1   = cert(z.94, x.168, x.169)
+       z.2   = z.97
+       z.3   = z.98
+       z.4   = verify(x.168, <z.94, x.169, 'chip'>, pk(ca_sk))
+    
+    7. cCA   = senc(<cert(z.94, sign(<z.94, x.168, 'chip'>, ca_sk), x.168), 
+                     x.169>,
+                    kTENC.89)
+       kTENC = kTENC.89
+       z     = z.94
+       z.1   = cert(z.94, sign(<z.94, x.168, 'chip'>, ca_sk), x.168)
+       z.2   = fst(x.169)
+       z.3   = snd(x.169)
+       z.4   = true
+    
+    8. cCA   = senc(<cert(z.95, x.169, x.170), x.171>, kTENC.90)
+       kTENC = kTENC.90
+       z     = z.95
+       z.1   = cert(z.95, x.169, x.170)
+       z.2   = fst(x.171)
+       z.3   = snd(x.171)
+       z.4   = verify(x.169, <z.95, x.170, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) CA_FINISH_C:
+   [
+   In( <cip, s, cipe, '5', 't'> ),
+   CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2, skCe
+   ),
+   !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( s, mac(<'CA', certT, certC, r2, cip, pk(skCe), cipe>, kTMAC) ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>,
+                 <decaps(cip, ~skC), decaps(cipe, skCe)>),
+             <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <
+         kdf(<'CNF', certT, certC, r2, cip, pk(skCe), cipe>,
+             <decaps(cip, ~skC), decaps(cipe, skCe)>), 
+         '6', 'c'>
+   ),
+   CAFinishC( $C, cert_id(certT),
+              kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>,
+                  <decaps(cip, ~skC), decaps(cipe, skCe)>)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_C:
+     [
+     In( <cip, s, cipe, '5', 't'> ),
+     CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2, skCe
+     ),
+     !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( s, mac(<'CA', certT, certC, r2, cip, pk(skCe), cipe>, kTMAC) ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>),
+               <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', z.2
+    )
+    ]->
+     [
+     Out( <kdf(<'CNF', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>), 
+           '6', 'c'>
+     ),
+     CAFinishC( $C, z.2,
+                kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>)
+     )
+     ]
+    variants (modulo AC)
+    1. ~skC  = ~skC.41
+       certT = certT.44
+       cip   = cip.45
+       cipe  = cipe.46
+       skCe  = skCe.55
+       z     = decaps(cip.45, ~skC.41)
+       z.1   = decaps(cipe.46, skCe.55)
+       z.2   = cert_id(certT.44)
+    
+    2. ~skC  = ~skC.46
+       certT = certT.49
+       cip   = encaps(z.65, pk(~skC.46))
+       cipe  = cipe.51
+       skCe  = skCe.60
+       z     = z.65
+       z.1   = decaps(cipe.51, skCe.60)
+       z.2   = cert_id(certT.49)
+    
+    3. ~skC  = ~skC.47
+       certT = certT.50
+       cip   = cip.51
+       cipe  = encaps(z.67, pk(skCe.61))
+       skCe  = skCe.61
+       z     = decaps(cip.51, ~skC.47)
+       z.1   = z.67
+       z.2   = cert_id(certT.50)
+    
+    4. ~skC  = ~skC.47
+       certT = certT.50
+       cip   = encaps(z.66, pk(~skC.47))
+       cipe  = encaps(z.67, pk(skCe.61))
+       skCe  = skCe.61
+       z     = z.66
+       z.1   = z.67
+       z.2   = cert_id(certT.50)
+    
+    5. ~skC  = ~skC.210
+       certT = cert(x.416, x.417, z.233)
+       cip   = cip.214
+       cipe  = cipe.215
+       skCe  = skCe.224
+       z     = decaps(cip.214, ~skC.210)
+       z.1   = decaps(cipe.215, skCe.224)
+       z.2   = z.233
+    
+    6. ~skC  = ~skC.210
+       certT = cert(x.416, x.417, z.233)
+       cip   = cip.214
+       cipe  = encaps(z.230, pk(skCe.224))
+       skCe  = skCe.224
+       z     = decaps(cip.214, ~skC.210)
+       z.1   = z.230
+       z.2   = z.233
+    
+    7. ~skC  = ~skC.213
+       certT = cert(x.422, x.423, z.236)
+       cip   = encaps(z.232, pk(~skC.213))
+       cipe  = cipe.218
+       skCe  = skCe.227
+       z     = z.232
+       z.1   = decaps(cipe.218, skCe.227)
+       z.2   = z.236
+    
+    8. ~skC  = ~skC.213
+       certT = cert(x.422, x.423, z.236)
+       cip   = encaps(z.232, pk(~skC.213))
+       cipe  = encaps(z.233, pk(skCe.227))
+       skCe  = skCe.227
+       z     = z.232
+       z.1   = z.233
+       z.2   = z.236
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <kCNF_c, '6', 'c'> ),
+   CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>, <ke, cipe>,
+            pkCe
+   ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>), kCNF_c ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>),
+             <certT, certC, r2, cip, pkCe, cipe>, $T, 'terminal', cert_id(certC)
+  ),
+  Finished( <certT, certC, r2, cip, pkCe, cipe> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T,
+              kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+   ),
+   !SessionReveal( <certT, certC, r2, cip, pkCe, cipe>,
+                   kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <kCNF_c, '6', 'c'> ),
+     CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>, <ke, cipe>,
+              pkCe
+     ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>), kCNF_c ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>),
+               <certT, certC, r2, cip, pkCe, cipe>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, r2, cip, pkCe, cipe> )
+    ]->
+     [
+     CAFinishT( z, $T,
+                kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+     ),
+     !SessionReveal( <certT, certC, r2, cip, pkCe, cipe>,
+                     kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.20
+       z     = cert_id(certC.20)
+    
+    2. certC = cert(x.46, x.47, z.33)
+       z     = z.33
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, cipe, kCNF> ),
+   In( <kTA, skCe> ), !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(fst(sdec(cCA, kdf(<'TENC', r1>, kTA)))) ),
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 'chip'), true ),
+  Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( kTCNF, kdf(<'TCNF', r1>, kTA) ),
+  Eq( s,
+      mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, kTA))), cip, pk(skCe), cipe>,
+          kdf(<'TMAC', r1>, kTA))
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, kTA))), cip, pk(skCe), cipe>,
+          <decaps(cip, skC), decaps(cipe, skCe)>)
+  ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, cipe, kCNF> ),
+     In( <kTA, skCe> ), !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( z.1, true ), Eq( z.2, true ),
+    Eq( kTCNF, kdf(<'TCNF', r1>, kTA) ),
+    Eq( s,
+        mac(<'CA', certT, z.3, z.4, cip, pk(skCe), cipe>, kdf(<'TMAC', r1>, kTA))
+    ),
+    Eq( kCNF, kdf(<'CNF', certT, z.3, z.4, cip, pk(skCe), cipe>, <z.5, z.6>)
+    ),
+    ValidTrans( C, 'chip', z.7 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. cCA   = cCA.40
+        certT = certT.42
+        cip   = cip.43
+        cipe  = cipe.44
+        kTA   = kTA.46
+        r1    = r1.48
+        skC   = skC.50
+        skCe  = skCe.51
+        z     = cert_id(fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))),
+                       <cert_pk(fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))), 
+                        cert_id(fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.42),
+                       <cert_pk(certT.42), cert_id(certT.42), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))
+        z.4   = snd(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))
+        z.5   = decaps(cip.43, skC.50)
+        z.6   = decaps(cipe.44, skCe.51)
+        z.7   = cert_id(certT.42)
+    
+     2. cCA   = cCA.51
+        certT = certT.53
+        cip   = encaps(z.73, pk(skC.61))
+        cipe  = cipe.55
+        kTA   = kTA.57
+        r1    = r1.59
+        skC   = skC.61
+        skCe  = skCe.62
+        z     = cert_id(fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))),
+                       <cert_pk(fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))), 
+                        cert_id(fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.53),
+                       <cert_pk(certT.53), cert_id(certT.53), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))
+        z.4   = snd(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))
+        z.5   = z.73
+        z.6   = decaps(cipe.55, skCe.62)
+        z.7   = cert_id(certT.53)
+    
+     3. cCA   = cCA.52
+        certT = certT.54
+        cip   = cip.55
+        cipe  = encaps(z.75, pk(skCe.63))
+        kTA   = kTA.58
+        r1    = r1.60
+        skC   = skC.62
+        skCe  = skCe.63
+        z     = cert_id(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))),
+                       <cert_pk(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))), 
+                        cert_id(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.54),
+                       <cert_pk(certT.54), cert_id(certT.54), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))
+        z.4   = snd(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))
+        z.5   = decaps(cip.55, skC.62)
+        z.6   = z.75
+        z.7   = cert_id(certT.54)
+    
+     4. cCA   = cCA.52
+        certT = certT.54
+        cip   = encaps(z.74, pk(skC.62))
+        cipe  = encaps(z.75, pk(skCe.63))
+        kTA   = kTA.58
+        r1    = r1.60
+        skC   = skC.62
+        skCe  = skCe.63
+        z     = cert_id(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))),
+                       <cert_pk(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))), 
+                        cert_id(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.54),
+                       <cert_pk(certT.54), cert_id(certT.54), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))
+        z.4   = snd(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))
+        z.5   = z.74
+        z.6   = z.75
+        z.7   = cert_id(certT.54)
+    
+     5. cCA   = cCA.129
+        certT = cert(x.254, sign(<x.254, z.153, 'terminal'>, ca_sk), z.153)
+        cip   = cip.132
+        cipe  = cipe.133
+        kTA   = kTA.135
+        r1    = r1.137
+        skC   = skC.139
+        skCe  = skCe.140
+        z     = cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.137>, kTA.135)))),
+                       <cert_pk(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 
+                        cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.4   = snd(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.5   = decaps(cip.132, skC.139)
+        z.6   = decaps(cipe.133, skCe.140)
+        z.7   = z.153
+    
+     6. cCA   = cCA.129
+        certT = cert(x.254, sign(<x.254, z.153, 'terminal'>, ca_sk), z.153)
+        cip   = cip.132
+        cipe  = encaps(z.152, pk(skCe.140))
+        kTA   = kTA.135
+        r1    = r1.137
+        skC   = skC.139
+        skCe  = skCe.140
+        z     = cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.137>, kTA.135)))),
+                       <cert_pk(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 
+                        cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.4   = snd(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.5   = decaps(cip.132, skC.139)
+        z.6   = z.152
+        z.7   = z.153
+    
+     7. cCA   = cCA.129
+        certT = cert(x.254, sign(<x.254, z.153, 'terminal'>, ca_sk), z.153)
+        cip   = encaps(z.151, pk(skC.139))
+        cipe  = cipe.133
+        kTA   = kTA.135
+        r1    = r1.137
+        skC   = skC.139
+        skCe  = skCe.140
+        z     = cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.137>, kTA.135)))),
+                       <cert_pk(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 
+                        cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.4   = snd(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.5   = z.151
+        z.6   = decaps(cipe.133, skCe.140)
+        z.7   = z.153
+    
+     8. cCA   = cCA.129
+        certT = cert(x.254, sign(<x.254, z.153, 'terminal'>, ca_sk), z.153)
+        cip   = encaps(z.151, pk(skC.139))
+        cipe  = encaps(z.152, pk(skCe.140))
+        kTA   = kTA.135
+        r1    = r1.137
+        skC   = skC.139
+        skCe  = skCe.140
+        z     = cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.137>, kTA.135)))),
+                       <cert_pk(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 
+                        cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.4   = snd(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.5   = z.151
+        z.6   = z.152
+        z.7   = z.153
+    
+     9. cCA   = cCA.130
+        certT = cert(x.255, x.256, z.154)
+        cip   = cip.133
+        cipe  = cipe.134
+        kTA   = kTA.136
+        r1    = r1.138
+        skC   = skC.140
+        skCe  = skCe.141
+        z     = cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.138>, kTA.136)))),
+                       <cert_pk(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 
+                        cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.154, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.4   = snd(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.5   = decaps(cip.133, skC.140)
+        z.6   = decaps(cipe.134, skCe.141)
+        z.7   = z.154
+    
+    10. cCA   = cCA.130
+        certT = cert(x.255, x.256, z.154)
+        cip   = cip.133
+        cipe  = encaps(z.153, pk(skCe.141))
+        kTA   = kTA.136
+        r1    = r1.138
+        skC   = skC.140
+        skCe  = skCe.141
+        z     = cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.138>, kTA.136)))),
+                       <cert_pk(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 
+                        cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.154, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.4   = snd(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.5   = decaps(cip.133, skC.140)
+        z.6   = z.153
+        z.7   = z.154
+    
+    11. cCA   = cCA.130
+        certT = cert(x.255, x.256, z.154)
+        cip   = encaps(z.152, pk(skC.140))
+        cipe  = cipe.134
+        kTA   = kTA.136
+        r1    = r1.138
+        skC   = skC.140
+        skCe  = skCe.141
+        z     = cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.138>, kTA.136)))),
+                       <cert_pk(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 
+                        cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.154, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.4   = snd(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.5   = z.152
+        z.6   = decaps(cipe.134, skCe.141)
+        z.7   = z.154
+    
+    12. cCA   = cCA.130
+        certT = cert(x.255, x.256, z.154)
+        cip   = encaps(z.152, pk(skC.140))
+        cipe  = encaps(z.153, pk(skCe.141))
+        kTA   = kTA.136
+        r1    = r1.138
+        skC   = skC.140
+        skCe  = skCe.141
+        z     = cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.138>, kTA.136)))),
+                       <cert_pk(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 
+                        cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.154, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.4   = snd(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.5   = z.152
+        z.6   = z.153
+        z.7   = z.154
+    
+    13. cCA   = senc(x.204, kdf(<'TENC', r1.111>, kTA.109))
+        certT = cert(x.208, sign(<x.208, z.127, 'terminal'>, ca_sk), z.127)
+        cip   = encaps(z.125, pk(skC.113))
+        cipe  = encaps(z.126, pk(skCe.114))
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        skCe  = skCe.114
+        z     = cert_id(fst(x.204))
+        z.1   = verify(cert_sig(fst(x.204)),
+                       <cert_pk(fst(x.204)), cert_id(fst(x.204)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.204)
+        z.4   = snd(x.204)
+        z.5   = z.125
+        z.6   = z.126
+        z.7   = z.127
+    
+    14. cCA   = senc(x.205, kdf(<'TENC', r1.112>, kTA.110))
+        certT = cert(x.209, x.210, z.128)
+        cip   = encaps(z.126, pk(skC.114))
+        cipe  = encaps(z.127, pk(skCe.115))
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        skCe  = skCe.115
+        z     = cert_id(fst(x.205))
+        z.1   = verify(cert_sig(fst(x.205)),
+                       <cert_pk(fst(x.205)), cert_id(fst(x.205)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.210, <x.209, z.128, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.205)
+        z.4   = snd(x.205)
+        z.5   = z.126
+        z.6   = z.127
+        z.7   = z.128
+    
+    15. cCA   = senc(x.222, kdf(<'TENC', r1.121>, kTA.119))
+        certT = cert(x.226, sign(<x.226, z.137, 'terminal'>, ca_sk), z.137)
+        cip   = encaps(z.135, pk(skC.123))
+        cipe  = cipe.117
+        kTA   = kTA.119
+        r1    = r1.121
+        skC   = skC.123
+        skCe  = skCe.124
+        z     = cert_id(fst(x.222))
+        z.1   = verify(cert_sig(fst(x.222)),
+                       <cert_pk(fst(x.222)), cert_id(fst(x.222)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.222)
+        z.4   = snd(x.222)
+        z.5   = z.135
+        z.6   = decaps(cipe.117, skCe.124)
+        z.7   = z.137
+    
+    16. cCA   = senc(x.223, kdf(<'TENC', r1.122>, kTA.120))
+        certT = cert(x.227, x.228, z.138)
+        cip   = encaps(z.136, pk(skC.124))
+        cipe  = cipe.118
+        kTA   = kTA.120
+        r1    = r1.122
+        skC   = skC.124
+        skCe  = skCe.125
+        z     = cert_id(fst(x.223))
+        z.1   = verify(cert_sig(fst(x.223)),
+                       <cert_pk(fst(x.223)), cert_id(fst(x.223)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.228, <x.227, z.138, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.223)
+        z.4   = snd(x.223)
+        z.5   = z.136
+        z.6   = decaps(cipe.118, skCe.125)
+        z.7   = z.138
+    
+    17. cCA   = senc(x.231, kdf(<'TENC', r1.126>, kTA.124))
+        certT = cert(x.235, sign(<x.235, z.142, 'terminal'>, ca_sk), z.142)
+        cip   = cip.121
+        cipe  = cipe.122
+        kTA   = kTA.124
+        r1    = r1.126
+        skC   = skC.128
+        skCe  = skCe.129
+        z     = cert_id(fst(x.231))
+        z.1   = verify(cert_sig(fst(x.231)),
+                       <cert_pk(fst(x.231)), cert_id(fst(x.231)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.231)
+        z.4   = snd(x.231)
+        z.5   = decaps(cip.121, skC.128)
+        z.6   = decaps(cipe.122, skCe.129)
+        z.7   = z.142
+    
+    18. cCA   = senc(x.231, kdf(<'TENC', r1.126>, kTA.124))
+        certT = cert(x.235, sign(<x.235, z.142, 'terminal'>, ca_sk), z.142)
+        cip   = cip.121
+        cipe  = encaps(z.141, pk(skCe.129))
+        kTA   = kTA.124
+        r1    = r1.126
+        skC   = skC.128
+        skCe  = skCe.129
+        z     = cert_id(fst(x.231))
+        z.1   = verify(cert_sig(fst(x.231)),
+                       <cert_pk(fst(x.231)), cert_id(fst(x.231)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.231)
+        z.4   = snd(x.231)
+        z.5   = decaps(cip.121, skC.128)
+        z.6   = z.141
+        z.7   = z.142
+    
+    19. cCA   = senc(x.232, kdf(<'TENC', r1.127>, kTA.125))
+        certT = cert(x.236, x.237, z.143)
+        cip   = cip.122
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.232))
+        z.1   = verify(cert_sig(fst(x.232)),
+                       <cert_pk(fst(x.232)), cert_id(fst(x.232)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.237, <x.236, z.143, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.232)
+        z.4   = snd(x.232)
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = z.143
+    
+    20. cCA   = senc(x.232, kdf(<'TENC', r1.127>, kTA.125))
+        certT = cert(x.236, x.237, z.143)
+        cip   = cip.122
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.232))
+        z.1   = verify(cert_sig(fst(x.232)),
+                       <cert_pk(fst(x.232)), cert_id(fst(x.232)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.237, <x.236, z.143, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.232)
+        z.4   = snd(x.232)
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = z.142
+        z.7   = z.143
+    
+    21. cCA   = senc(x.236, kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = cip.122
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.236))
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.236)
+        z.4   = snd(x.236)
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = cert_id(certT.121)
+    
+    22. cCA   = senc(x.236, kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = cip.122
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.236))
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.236)
+        z.4   = snd(x.236)
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = z.142
+        z.7   = cert_id(certT.121)
+    
+    23. cCA   = senc(x.236, kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = encaps(z.141, pk(skC.129))
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.236))
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.236)
+        z.4   = snd(x.236)
+        z.5   = z.141
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = cert_id(certT.121)
+    
+    24. cCA   = senc(x.236, kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = encaps(z.141, pk(skC.129))
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.236))
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.236)
+        z.4   = snd(x.236)
+        z.5   = z.141
+        z.6   = z.142
+        z.7   = cert_id(certT.121)
+    
+    25. cCA   = senc(<z.62, z.63>, kdf(<'TENC', r1.52>, kTA.50))
+        certT = certT.46
+        cip   = cip.47
+        cipe  = cipe.48
+        kTA   = kTA.50
+        r1    = r1.52
+        skC   = skC.54
+        skCe  = skCe.55
+        z     = cert_id(z.62)
+        z.1   = verify(cert_sig(z.62), <cert_pk(z.62), cert_id(z.62), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.46),
+                       <cert_pk(certT.46), cert_id(certT.46), 'terminal'>, pk(ca_sk))
+        z.3   = z.62
+        z.4   = z.63
+        z.5   = decaps(cip.47, skC.54)
+        z.6   = decaps(cipe.48, skCe.55)
+        z.7   = cert_id(certT.46)
+    
+    26. cCA   = senc(<z.65, z.66>, kdf(<'TENC', r1.55>, kTA.53))
+        certT = certT.49
+        cip   = encaps(z.69, pk(skC.57))
+        cipe  = cipe.51
+        kTA   = kTA.53
+        r1    = r1.55
+        skC   = skC.57
+        skCe  = skCe.58
+        z     = cert_id(z.65)
+        z.1   = verify(cert_sig(z.65), <cert_pk(z.65), cert_id(z.65), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.49),
+                       <cert_pk(certT.49), cert_id(certT.49), 'terminal'>, pk(ca_sk))
+        z.3   = z.65
+        z.4   = z.66
+        z.5   = z.69
+        z.6   = decaps(cipe.51, skCe.58)
+        z.7   = cert_id(certT.49)
+    
+    27. cCA   = senc(<z.66, z.67>, kdf(<'TENC', r1.56>, kTA.54))
+        certT = certT.50
+        cip   = cip.51
+        cipe  = encaps(z.71, pk(skCe.59))
+        kTA   = kTA.54
+        r1    = r1.56
+        skC   = skC.58
+        skCe  = skCe.59
+        z     = cert_id(z.66)
+        z.1   = verify(cert_sig(z.66), <cert_pk(z.66), cert_id(z.66), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.50),
+                       <cert_pk(certT.50), cert_id(certT.50), 'terminal'>, pk(ca_sk))
+        z.3   = z.66
+        z.4   = z.67
+        z.5   = decaps(cip.51, skC.58)
+        z.6   = z.71
+        z.7   = cert_id(certT.50)
+    
+    28. cCA   = senc(<z.66, z.67>, kdf(<'TENC', r1.56>, kTA.54))
+        certT = certT.50
+        cip   = encaps(z.70, pk(skC.58))
+        cipe  = encaps(z.71, pk(skCe.59))
+        kTA   = kTA.54
+        r1    = r1.56
+        skC   = skC.58
+        skCe  = skCe.59
+        z     = cert_id(z.66)
+        z.1   = verify(cert_sig(z.66), <cert_pk(z.66), cert_id(z.66), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.50),
+                       <cert_pk(certT.50), cert_id(certT.50), 'terminal'>, pk(ca_sk))
+        z.3   = z.66
+        z.4   = z.67
+        z.5   = z.70
+        z.6   = z.71
+        z.7   = cert_id(certT.50)
+    
+    29. cCA   = senc(<z.122, z.123>, kdf(<'TENC', r1.112>, kTA.110))
+        certT = cert(x.210, sign(<x.210, z.128, 'terminal'>, ca_sk), z.128)
+        cip   = encaps(z.126, pk(skC.114))
+        cipe  = encaps(z.127, pk(skCe.115))
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        skCe  = skCe.115
+        z     = cert_id(z.122)
+        z.1   = verify(cert_sig(z.122), <cert_pk(z.122), cert_id(z.122), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.122
+        z.4   = z.123
+        z.5   = z.126
+        z.6   = z.127
+        z.7   = z.128
+    
+    30. cCA   = senc(<z.123, z.124>, kdf(<'TENC', r1.113>, kTA.111))
+        certT = cert(x.211, x.212, z.129)
+        cip   = encaps(z.127, pk(skC.115))
+        cipe  = encaps(z.128, pk(skCe.116))
+        kTA   = kTA.111
+        r1    = r1.113
+        skC   = skC.115
+        skCe  = skCe.116
+        z     = cert_id(z.123)
+        z.1   = verify(cert_sig(z.123), <cert_pk(z.123), cert_id(z.123), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.212, <x.211, z.129, 'terminal'>, pk(ca_sk))
+        z.3   = z.123
+        z.4   = z.124
+        z.5   = z.127
+        z.6   = z.128
+        z.7   = z.129
+    
+    31. cCA   = senc(<z.132, z.133>, kdf(<'TENC', r1.122>, kTA.120))
+        certT = cert(x.228, sign(<x.228, z.138, 'terminal'>, ca_sk), z.138)
+        cip   = encaps(z.136, pk(skC.124))
+        cipe  = cipe.118
+        kTA   = kTA.120
+        r1    = r1.122
+        skC   = skC.124
+        skCe  = skCe.125
+        z     = cert_id(z.132)
+        z.1   = verify(cert_sig(z.132), <cert_pk(z.132), cert_id(z.132), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.132
+        z.4   = z.133
+        z.5   = z.136
+        z.6   = decaps(cipe.118, skCe.125)
+        z.7   = z.138
+    
+    32. cCA   = senc(<z.133, z.134>, kdf(<'TENC', r1.123>, kTA.121))
+        certT = cert(x.229, x.230, z.139)
+        cip   = encaps(z.137, pk(skC.125))
+        cipe  = cipe.119
+        kTA   = kTA.121
+        r1    = r1.123
+        skC   = skC.125
+        skCe  = skCe.126
+        z     = cert_id(z.133)
+        z.1   = verify(cert_sig(z.133), <cert_pk(z.133), cert_id(z.133), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.230, <x.229, z.139, 'terminal'>, pk(ca_sk))
+        z.3   = z.133
+        z.4   = z.134
+        z.5   = z.137
+        z.6   = decaps(cipe.119, skCe.126)
+        z.7   = z.139
+    
+    33. cCA   = senc(<z.137, z.138>, kdf(<'TENC', r1.127>, kTA.125))
+        certT = cert(x.237, sign(<x.237, z.143, 'terminal'>, ca_sk), z.143)
+        cip   = cip.122
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(z.137)
+        z.1   = verify(cert_sig(z.137), <cert_pk(z.137), cert_id(z.137), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.137
+        z.4   = z.138
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = z.143
+    
+    34. cCA   = senc(<z.137, z.138>, kdf(<'TENC', r1.127>, kTA.125))
+        certT = cert(x.237, sign(<x.237, z.143, 'terminal'>, ca_sk), z.143)
+        cip   = cip.122
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(z.137)
+        z.1   = verify(cert_sig(z.137), <cert_pk(z.137), cert_id(z.137), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.137
+        z.4   = z.138
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = z.142
+        z.7   = z.143
+    
+    35. cCA   = senc(<z.138, z.139>, kdf(<'TENC', r1.128>, kTA.126))
+        certT = cert(x.238, x.239, z.144)
+        cip   = cip.123
+        cipe  = cipe.124
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = cert_id(z.138)
+        z.1   = verify(cert_sig(z.138), <cert_pk(z.138), cert_id(z.138), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.239, <x.238, z.144, 'terminal'>, pk(ca_sk))
+        z.3   = z.138
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = decaps(cipe.124, skCe.131)
+        z.7   = z.144
+    
+    36. cCA   = senc(<z.138, z.139>, kdf(<'TENC', r1.128>, kTA.126))
+        certT = cert(x.238, x.239, z.144)
+        cip   = cip.123
+        cipe  = encaps(z.143, pk(skCe.131))
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = cert_id(z.138)
+        z.1   = verify(cert_sig(z.138), <cert_pk(z.138), cert_id(z.138), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.239, <x.238, z.144, 'terminal'>, pk(ca_sk))
+        z.3   = z.138
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = z.143
+        z.7   = z.144
+    
+    37. cCA   = senc(<
+                      cert(x.206, sign(<x.206, z.118, 'chip'>, ca_sk), z.118), z.124>,
+                     kdf(<'TENC', r1.113>, kTA.111))
+        certT = cert(x.212, sign(<x.212, z.129, 'terminal'>, ca_sk), z.129)
+        cip   = encaps(z.127, pk(skC.115))
+        cipe  = encaps(z.128, pk(skCe.116))
+        kTA   = kTA.111
+        r1    = r1.113
+        skC   = skC.115
+        skCe  = skCe.116
+        z     = z.118
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.206, sign(<x.206, z.118, 'chip'>, ca_sk), z.118)
+        z.4   = z.124
+        z.5   = z.127
+        z.6   = z.128
+        z.7   = z.129
+    
+    38. cCA   = senc(<cert(x.207, x.208, z.119), z.125>,
+                     kdf(<'TENC', r1.114>, kTA.112))
+        certT = cert(x.214, sign(<x.214, z.130, 'terminal'>, ca_sk), z.130)
+        cip   = encaps(z.128, pk(skC.116))
+        cipe  = encaps(z.129, pk(skCe.117))
+        kTA   = kTA.112
+        r1    = r1.114
+        skC   = skC.116
+        skCe  = skCe.117
+        z     = z.119
+        z.1   = verify(x.208, <x.207, z.119, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.207, x.208, z.119)
+        z.4   = z.125
+        z.5   = z.128
+        z.6   = z.129
+        z.7   = z.130
+    
+    39. cCA   = senc(<
+                      cert(x.207, sign(<x.207, z.119, 'chip'>, ca_sk), z.119), z.125>,
+                     kdf(<'TENC', r1.114>, kTA.112))
+        certT = cert(x.213, x.214, z.130)
+        cip   = encaps(z.128, pk(skC.116))
+        cipe  = encaps(z.129, pk(skCe.117))
+        kTA   = kTA.112
+        r1    = r1.114
+        skC   = skC.116
+        skCe  = skCe.117
+        z     = z.119
+        z.1   = true
+        z.2   = verify(x.214, <x.213, z.130, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.207, sign(<x.207, z.119, 'chip'>, ca_sk), z.119)
+        z.4   = z.125
+        z.5   = z.128
+        z.6   = z.129
+        z.7   = z.130
+    
+    40. cCA   = senc(<cert(x.208, x.209, z.120), z.126>,
+                     kdf(<'TENC', r1.115>, kTA.113))
+        certT = cert(x.215, x.216, z.131)
+        cip   = encaps(z.129, pk(skC.117))
+        cipe  = encaps(z.130, pk(skCe.118))
+        kTA   = kTA.113
+        r1    = r1.115
+        skC   = skC.117
+        skCe  = skCe.118
+        z     = z.120
+        z.1   = verify(x.209, <x.208, z.120, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.216, <x.215, z.131, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.208, x.209, z.120)
+        z.4   = z.126
+        z.5   = z.129
+        z.6   = z.130
+        z.7   = z.131
+    
+    41. cCA   = senc(<
+                      cert(x.224, sign(<x.224, z.128, 'chip'>, ca_sk), z.128), z.134>,
+                     kdf(<'TENC', r1.123>, kTA.121))
+        certT = cert(x.230, sign(<x.230, z.139, 'terminal'>, ca_sk), z.139)
+        cip   = encaps(z.137, pk(skC.125))
+        cipe  = cipe.119
+        kTA   = kTA.121
+        r1    = r1.123
+        skC   = skC.125
+        skCe  = skCe.126
+        z     = z.128
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.224, sign(<x.224, z.128, 'chip'>, ca_sk), z.128)
+        z.4   = z.134
+        z.5   = z.137
+        z.6   = decaps(cipe.119, skCe.126)
+        z.7   = z.139
+    
+    42. cCA   = senc(<cert(x.225, x.226, z.129), z.135>,
+                     kdf(<'TENC', r1.124>, kTA.122))
+        certT = cert(x.232, sign(<x.232, z.140, 'terminal'>, ca_sk), z.140)
+        cip   = encaps(z.138, pk(skC.126))
+        cipe  = cipe.120
+        kTA   = kTA.122
+        r1    = r1.124
+        skC   = skC.126
+        skCe  = skCe.127
+        z     = z.129
+        z.1   = verify(x.226, <x.225, z.129, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.225, x.226, z.129)
+        z.4   = z.135
+        z.5   = z.138
+        z.6   = decaps(cipe.120, skCe.127)
+        z.7   = z.140
+    
+    43. cCA   = senc(<
+                      cert(x.225, sign(<x.225, z.129, 'chip'>, ca_sk), z.129), z.135>,
+                     kdf(<'TENC', r1.124>, kTA.122))
+        certT = cert(x.231, x.232, z.140)
+        cip   = encaps(z.138, pk(skC.126))
+        cipe  = cipe.120
+        kTA   = kTA.122
+        r1    = r1.124
+        skC   = skC.126
+        skCe  = skCe.127
+        z     = z.129
+        z.1   = true
+        z.2   = verify(x.232, <x.231, z.140, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.225, sign(<x.225, z.129, 'chip'>, ca_sk), z.129)
+        z.4   = z.135
+        z.5   = z.138
+        z.6   = decaps(cipe.120, skCe.127)
+        z.7   = z.140
+    
+    44. cCA   = senc(<cert(x.226, x.227, z.130), z.136>,
+                     kdf(<'TENC', r1.125>, kTA.123))
+        certT = cert(x.233, x.234, z.141)
+        cip   = encaps(z.139, pk(skC.127))
+        cipe  = cipe.121
+        kTA   = kTA.123
+        r1    = r1.125
+        skC   = skC.127
+        skCe  = skCe.128
+        z     = z.130
+        z.1   = verify(x.227, <x.226, z.130, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.234, <x.233, z.141, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.226, x.227, z.130)
+        z.4   = z.136
+        z.5   = z.139
+        z.6   = decaps(cipe.121, skCe.128)
+        z.7   = z.141
+    
+    45. cCA   = senc(<
+                      cert(x.233, sign(<x.233, z.133, 'chip'>, ca_sk), z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = cert(x.239, sign(<x.239, z.144, 'terminal'>, ca_sk), z.144)
+        cip   = cip.123
+        cipe  = cipe.124
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.233, sign(<x.233, z.133, 'chip'>, ca_sk), z.133)
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = decaps(cipe.124, skCe.131)
+        z.7   = z.144
+    
+    46. cCA   = senc(<
+                      cert(x.233, sign(<x.233, z.133, 'chip'>, ca_sk), z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = cert(x.239, sign(<x.239, z.144, 'terminal'>, ca_sk), z.144)
+        cip   = cip.123
+        cipe  = encaps(z.143, pk(skCe.131))
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.233, sign(<x.233, z.133, 'chip'>, ca_sk), z.133)
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = z.143
+        z.7   = z.144
+    
+    47. cCA   = senc(<cert(x.234, x.235, z.134), z.140>,
+                     kdf(<'TENC', r1.129>, kTA.127))
+        certT = cert(x.241, sign(<x.241, z.145, 'terminal'>, ca_sk), z.145)
+        cip   = cip.124
+        cipe  = cipe.125
+        kTA   = kTA.127
+        r1    = r1.129
+        skC   = skC.131
+        skCe  = skCe.132
+        z     = z.134
+        z.1   = verify(x.235, <x.234, z.134, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.234, x.235, z.134)
+        z.4   = z.140
+        z.5   = decaps(cip.124, skC.131)
+        z.6   = decaps(cipe.125, skCe.132)
+        z.7   = z.145
+    
+    48. cCA   = senc(<cert(x.234, x.235, z.134), z.140>,
+                     kdf(<'TENC', r1.129>, kTA.127))
+        certT = cert(x.241, sign(<x.241, z.145, 'terminal'>, ca_sk), z.145)
+        cip   = cip.124
+        cipe  = encaps(z.144, pk(skCe.132))
+        kTA   = kTA.127
+        r1    = r1.129
+        skC   = skC.131
+        skCe  = skCe.132
+        z     = z.134
+        z.1   = verify(x.235, <x.234, z.134, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.234, x.235, z.134)
+        z.4   = z.140
+        z.5   = decaps(cip.124, skC.131)
+        z.6   = z.144
+        z.7   = z.145
+    
+    49. cCA   = senc(<
+                      cert(x.234, sign(<x.234, z.134, 'chip'>, ca_sk), z.134), z.140>,
+                     kdf(<'TENC', r1.129>, kTA.127))
+        certT = cert(x.240, x.241, z.145)
+        cip   = cip.124
+        cipe  = cipe.125
+        kTA   = kTA.127
+        r1    = r1.129
+        skC   = skC.131
+        skCe  = skCe.132
+        z     = z.134
+        z.1   = true
+        z.2   = verify(x.241, <x.240, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.234, sign(<x.234, z.134, 'chip'>, ca_sk), z.134)
+        z.4   = z.140
+        z.5   = decaps(cip.124, skC.131)
+        z.6   = decaps(cipe.125, skCe.132)
+        z.7   = z.145
+    
+    50. cCA   = senc(<
+                      cert(x.234, sign(<x.234, z.134, 'chip'>, ca_sk), z.134), z.140>,
+                     kdf(<'TENC', r1.129>, kTA.127))
+        certT = cert(x.240, x.241, z.145)
+        cip   = cip.124
+        cipe  = encaps(z.144, pk(skCe.132))
+        kTA   = kTA.127
+        r1    = r1.129
+        skC   = skC.131
+        skCe  = skCe.132
+        z     = z.134
+        z.1   = true
+        z.2   = verify(x.241, <x.240, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.234, sign(<x.234, z.134, 'chip'>, ca_sk), z.134)
+        z.4   = z.140
+        z.5   = decaps(cip.124, skC.131)
+        z.6   = z.144
+        z.7   = z.145
+    
+    51. cCA   = senc(<cert(x.235, x.236, z.135), z.141>,
+                     kdf(<'TENC', r1.130>, kTA.128))
+        certT = cert(x.242, x.243, z.146)
+        cip   = cip.125
+        cipe  = cipe.126
+        kTA   = kTA.128
+        r1    = r1.130
+        skC   = skC.132
+        skCe  = skCe.133
+        z     = z.135
+        z.1   = verify(x.236, <x.235, z.135, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.243, <x.242, z.146, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.235, x.236, z.135)
+        z.4   = z.141
+        z.5   = decaps(cip.125, skC.132)
+        z.6   = decaps(cipe.126, skCe.133)
+        z.7   = z.146
+    
+    52. cCA   = senc(<cert(x.235, x.236, z.135), z.141>,
+                     kdf(<'TENC', r1.130>, kTA.128))
+        certT = cert(x.242, x.243, z.146)
+        cip   = cip.125
+        cipe  = encaps(z.145, pk(skCe.133))
+        kTA   = kTA.128
+        r1    = r1.130
+        skC   = skC.132
+        skCe  = skCe.133
+        z     = z.135
+        z.1   = verify(x.236, <x.235, z.135, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.243, <x.242, z.146, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.235, x.236, z.135)
+        z.4   = z.141
+        z.5   = decaps(cip.125, skC.132)
+        z.6   = z.145
+        z.7   = z.146
+    
+    53. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132), z.138>,
+                     kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = cip.122
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = z.132
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132)
+        z.4   = z.138
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = cert_id(certT.121)
+    
+    54. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132), z.138>,
+                     kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = cip.122
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = z.132
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132)
+        z.4   = z.138
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = z.142
+        z.7   = cert_id(certT.121)
+    
+    55. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132), z.138>,
+                     kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = encaps(z.141, pk(skC.129))
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = z.132
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132)
+        z.4   = z.138
+        z.5   = z.141
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = cert_id(certT.121)
+    
+    56. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132), z.138>,
+                     kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = encaps(z.141, pk(skC.129))
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = z.132
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132)
+        z.4   = z.138
+        z.5   = z.141
+        z.6   = z.142
+        z.7   = cert_id(certT.121)
+    
+    57. cCA   = senc(<cert(x.237, x.238, z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = certT.122
+        cip   = cip.123
+        cipe  = cipe.124
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = verify(x.238, <x.237, z.133, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.237, x.238, z.133)
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = decaps(cipe.124, skCe.131)
+        z.7   = cert_id(certT.122)
+    
+    58. cCA   = senc(<cert(x.237, x.238, z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = certT.122
+        cip   = cip.123
+        cipe  = encaps(z.143, pk(skCe.131))
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = verify(x.238, <x.237, z.133, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.237, x.238, z.133)
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = z.143
+        z.7   = cert_id(certT.122)
+    
+    59. cCA   = senc(<cert(x.237, x.238, z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = certT.122
+        cip   = encaps(z.142, pk(skC.130))
+        cipe  = cipe.124
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = verify(x.238, <x.237, z.133, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.237, x.238, z.133)
+        z.4   = z.139
+        z.5   = z.142
+        z.6   = decaps(cipe.124, skCe.131)
+        z.7   = cert_id(certT.122)
+    
+    60. cCA   = senc(<cert(x.237, x.238, z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = certT.122
+        cip   = encaps(z.142, pk(skC.130))
+        cipe  = encaps(z.143, pk(skCe.131))
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = verify(x.238, <x.237, z.133, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.237, x.238, z.133)
+        z.4   = z.139
+        z.5   = z.142
+        z.6   = z.143
+        z.7   = cert_id(certT.122)
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, cipe, kCNF> ),
+   In( <k, ke> ), !Ltk( T, skT, 'terminal' )
+   ]
+  --[
+  Eq( T, cert_id(certT) ),
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))),
+                  'chip'),
+      true
+  ),
+  Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( kTCNF, kdf(<'TCNF', r1>, decaps(cTA, skT)) ),
+  Eq( s,
+      mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), 
+           fst(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT))))), cip, 
+           snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT))))), cipe>,
+          kdf(<'TMAC', r1>, decaps(cTA, skT)))
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), 
+           fst(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT))))), cip, 
+           snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT))))), cipe>,
+          <k, ke>)
+  ),
+  ValidTrans( T, 'terminal',
+              cert_id(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))))
+  )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, cipe, kCNF> ),
+     In( <k, ke> ), !Ltk( T, skT, 'terminal' )
+     ]
+    --[
+    Eq( T, z ), Eq( z.1, true ), Eq( z.2, true ),
+    Eq( kTCNF, kdf(<'TCNF', r1>, z.3) ),
+    Eq( s,
+        mac(<'CA', certT, z.4, z.5, cip, z.6, cipe>, kdf(<'TMAC', r1>, z.3))
+    ),
+    Eq( kCNF, kdf(<'CNF', certT, z.4, z.5, cip, z.6, cipe>, <k, ke>) ),
+    ValidTrans( T, 'terminal', z.7 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. cCA   = cCA.40
+        cTA   = cTA.41
+        certT = certT.42
+        r1    = r1.49
+        skT   = skT.51
+        z     = cert_id(certT.42)
+        z.1   = verify(cert_sig(fst(sdec(cCA.40,
+                                         kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51))))),
+                       <
+                        cert_pk(fst(sdec(cCA.40,
+                                         kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51))))), 
+                        cert_id(fst(sdec(cCA.40,
+                                         kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.42),
+                       <cert_pk(certT.42), cert_id(certT.42), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.41, skT.51)
+        z.4   = fst(sdec(cCA.40, kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51))))
+        z.5   = fst(snd(sdec(cCA.40,
+                             kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51)))))
+        z.6   = snd(snd(sdec(cCA.40,
+                             kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51)))))
+        z.7   = cert_id(fst(sdec(cCA.40,
+                                 kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51)))))
+    
+     2. cCA   = cCA.46
+        cTA   = encaps(z.63, pk(skT.57))
+        certT = certT.48
+        r1    = r1.55
+        skT   = skT.57
+        z     = cert_id(certT.48)
+        z.1   = verify(cert_sig(fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63)))),
+                       <cert_pk(fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63)))), 
+                        cert_id(fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.48),
+                       <cert_pk(certT.48), cert_id(certT.48), 'terminal'>, pk(ca_sk))
+        z.3   = z.63
+        z.4   = fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63)))
+        z.5   = fst(snd(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63))))
+        z.6   = snd(snd(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63))))
+        z.7   = cert_id(fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63))))
+    
+     3. cCA   = cCA.129
+        cTA   = cTA.130
+        certT = cert(x.254, sign(<x.254, z.142, 'terminal'>, ca_sk), z.142)
+        r1    = r1.138
+        skT   = skT.140
+        z     = z.142
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140))))),
+                       <
+                        cert_pk(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140))))), 
+                        cert_id(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.130, skT.140)
+        z.4   = fst(sdec(cCA.129,
+                         kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140))))
+        z.5   = fst(snd(sdec(cCA.129,
+                             kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))))
+        z.6   = snd(snd(sdec(cCA.129,
+                             kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))))
+        z.7   = cert_id(fst(sdec(cCA.129,
+                                 kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))))
+    
+     4. cCA   = cCA.130
+        cTA   = cTA.131
+        certT = cert(x.255, x.256, z.143)
+        r1    = r1.139
+        skT   = skT.141
+        z     = z.143
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141))))),
+                       <
+                        cert_pk(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141))))), 
+                        cert_id(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.143, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.131, skT.141)
+        z.4   = fst(sdec(cCA.130,
+                         kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141))))
+        z.5   = fst(snd(sdec(cCA.130,
+                             kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))))
+        z.6   = snd(snd(sdec(cCA.130,
+                             kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))))
+        z.7   = cert_id(fst(sdec(cCA.130,
+                                 kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))))
+    
+     5. cCA   = cCA.131
+        cTA   = encaps(z.148, pk(skT.142))
+        certT = cert(x.258, sign(<x.258, z.144, 'terminal'>, ca_sk), z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = verify(cert_sig(fst(sdec(cCA.131,
+                                         kdf(<'TENC', r1.140>, z.148)))),
+                       <cert_pk(fst(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148)))), 
+                        cert_id(fst(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.148
+        z.4   = fst(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148)))
+        z.5   = fst(snd(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148))))
+        z.6   = snd(snd(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148))))
+        z.7   = cert_id(fst(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148))))
+    
+     6. cCA   = cCA.132
+        cTA   = encaps(z.149, pk(skT.143))
+        certT = cert(x.259, x.260, z.145)
+        r1    = r1.141
+        skT   = skT.143
+        z     = z.145
+        z.1   = verify(cert_sig(fst(sdec(cCA.132,
+                                         kdf(<'TENC', r1.141>, z.149)))),
+                       <cert_pk(fst(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149)))), 
+                        cert_id(fst(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.260, <x.259, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = z.149
+        z.4   = fst(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149)))
+        z.5   = fst(snd(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149))))
+        z.6   = snd(snd(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149))))
+        z.7   = cert_id(fst(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149))))
+    
+     7. cCA   = senc(x.177, kdf(<'TENC', r1.97>, z.105))
+        cTA   = encaps(z.105, pk(skT.99))
+        certT = cert(x.181, sign(<x.181, z.101, 'terminal'>, ca_sk), z.101)
+        r1    = r1.97
+        skT   = skT.99
+        z     = z.101
+        z.1   = verify(cert_sig(fst(x.177)),
+                       <cert_pk(fst(x.177)), cert_id(fst(x.177)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.105
+        z.4   = fst(x.177)
+        z.5   = fst(snd(x.177))
+        z.6   = snd(snd(x.177))
+        z.7   = cert_id(fst(x.177))
+    
+     8. cCA   = senc(x.178, kdf(<'TENC', r1.98>, z.106))
+        cTA   = encaps(z.106, pk(skT.100))
+        certT = cert(x.182, x.183, z.102)
+        r1    = r1.98
+        skT   = skT.100
+        z     = z.102
+        z.1   = verify(cert_sig(fst(x.178)),
+                       <cert_pk(fst(x.178)), cert_id(fst(x.178)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.183, <x.182, z.102, 'terminal'>, pk(ca_sk))
+        z.3   = z.106
+        z.4   = fst(x.178)
+        z.5   = fst(snd(x.178))
+        z.6   = snd(snd(x.178))
+        z.7   = cert_id(fst(x.178))
+    
+     9. cCA   = senc(x.236, kdf(<'TENC', r1.128>, z.136))
+        cTA   = encaps(z.136, pk(skT.130))
+        certT = certT.121
+        r1    = r1.128
+        skT   = skT.130
+        z     = cert_id(certT.121)
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = z.136
+        z.4   = fst(x.236)
+        z.5   = fst(snd(x.236))
+        z.6   = snd(snd(x.236))
+        z.7   = cert_id(fst(x.236))
+    
+    10. cCA   = senc(x.245, kdf(<'TENC', r1.133>, decaps(cTA.125, skT.135)))
+        cTA   = cTA.125
+        certT = certT.126
+        r1    = r1.133
+        skT   = skT.135
+        z     = cert_id(certT.126)
+        z.1   = verify(cert_sig(fst(x.245)),
+                       <cert_pk(fst(x.245)), cert_id(fst(x.245)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.126),
+                       <cert_pk(certT.126), cert_id(certT.126), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.125, skT.135)
+        z.4   = fst(x.245)
+        z.5   = fst(snd(x.245))
+        z.6   = snd(snd(x.245))
+        z.7   = cert_id(fst(x.245))
+    
+    11. cCA   = senc(x.249, kdf(<'TENC', r1.137>, decaps(cTA.129, skT.139)))
+        cTA   = cTA.129
+        certT = cert(x.253, sign(<x.253, z.141, 'terminal'>, ca_sk), z.141)
+        r1    = r1.137
+        skT   = skT.139
+        z     = z.141
+        z.1   = verify(cert_sig(fst(x.249)),
+                       <cert_pk(fst(x.249)), cert_id(fst(x.249)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.129, skT.139)
+        z.4   = fst(x.249)
+        z.5   = fst(snd(x.249))
+        z.6   = snd(snd(x.249))
+        z.7   = cert_id(fst(x.249))
+    
+    12. cCA   = senc(x.250, kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))
+        cTA   = cTA.130
+        certT = cert(x.254, x.255, z.142)
+        r1    = r1.138
+        skT   = skT.140
+        z     = z.142
+        z.1   = verify(cert_sig(fst(x.250)),
+                       <cert_pk(fst(x.250)), cert_id(fst(x.250)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.255, <x.254, z.142, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.130, skT.140)
+        z.4   = fst(x.250)
+        z.5   = fst(snd(x.250))
+        z.6   = snd(snd(x.250))
+        z.7   = cert_id(fst(x.250))
+    
+    13. cCA   = senc(<z.65, z.66, z.67>, kdf(<'TENC', r1.55>, z.63))
+        cTA   = encaps(z.63, pk(skT.57))
+        certT = certT.48
+        r1    = r1.55
+        skT   = skT.57
+        z     = cert_id(certT.48)
+        z.1   = verify(cert_sig(z.65), <cert_pk(z.65), cert_id(z.65), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.48),
+                       <cert_pk(certT.48), cert_id(certT.48), 'terminal'>, pk(ca_sk))
+        z.3   = z.63
+        z.4   = z.65
+        z.5   = z.66
+        z.6   = z.67
+        z.7   = cert_id(z.65)
+    
+    14. cCA   = senc(<z.67, z.68, z.69>,
+                     kdf(<'TENC', r1.57>, decaps(cTA.49, skT.59)))
+        cTA   = cTA.49
+        certT = certT.50
+        r1    = r1.57
+        skT   = skT.59
+        z     = cert_id(certT.50)
+        z.1   = verify(cert_sig(z.67), <cert_pk(z.67), cert_id(z.67), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.50),
+                       <cert_pk(certT.50), cert_id(certT.50), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.49, skT.59)
+        z.4   = z.67
+        z.5   = z.68
+        z.6   = z.69
+        z.7   = cert_id(z.67)
+    
+    15. cCA   = senc(<z.108, x.179>, kdf(<'TENC', r1.98>, z.106))
+        cTA   = encaps(z.106, pk(skT.100))
+        certT = cert(x.183, sign(<x.183, z.102, 'terminal'>, ca_sk), z.102)
+        r1    = r1.98
+        skT   = skT.100
+        z     = z.102
+        z.1   = verify(cert_sig(z.108), <cert_pk(z.108), cert_id(z.108), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.106
+        z.4   = z.108
+        z.5   = fst(x.179)
+        z.6   = snd(x.179)
+        z.7   = cert_id(z.108)
+    
+    16. cCA   = senc(<z.109, x.180>, kdf(<'TENC', r1.99>, z.107))
+        cTA   = encaps(z.107, pk(skT.101))
+        certT = cert(x.184, x.185, z.103)
+        r1    = r1.99
+        skT   = skT.101
+        z     = z.103
+        z.1   = verify(cert_sig(z.109), <cert_pk(z.109), cert_id(z.109), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.185, <x.184, z.103, 'terminal'>, pk(ca_sk))
+        z.3   = z.107
+        z.4   = z.109
+        z.5   = fst(x.180)
+        z.6   = snd(x.180)
+        z.7   = cert_id(z.109)
+    
+    17. cCA   = senc(<z.109, z.110, z.111>, kdf(<'TENC', r1.99>, z.107))
+        cTA   = encaps(z.107, pk(skT.101))
+        certT = cert(x.185, sign(<x.185, z.103, 'terminal'>, ca_sk), z.103)
+        r1    = r1.99
+        skT   = skT.101
+        z     = z.103
+        z.1   = verify(cert_sig(z.109), <cert_pk(z.109), cert_id(z.109), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.107
+        z.4   = z.109
+        z.5   = z.110
+        z.6   = z.111
+        z.7   = cert_id(z.109)
+    
+    18. cCA   = senc(<z.110, z.111, z.112>, kdf(<'TENC', r1.100>, z.108))
+        cTA   = encaps(z.108, pk(skT.102))
+        certT = cert(x.186, x.187, z.104)
+        r1    = r1.100
+        skT   = skT.102
+        z     = z.104
+        z.1   = verify(cert_sig(z.110), <cert_pk(z.110), cert_id(z.110), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.187, <x.186, z.104, 'terminal'>, pk(ca_sk))
+        z.3   = z.108
+        z.4   = z.110
+        z.5   = z.111
+        z.6   = z.112
+        z.7   = cert_id(z.110)
+    
+    19. cCA   = senc(<z.139, x.238>, kdf(<'TENC', r1.129>, z.137))
+        cTA   = encaps(z.137, pk(skT.131))
+        certT = certT.122
+        r1    = r1.129
+        skT   = skT.131
+        z     = cert_id(certT.122)
+        z.1   = verify(cert_sig(z.139), <cert_pk(z.139), cert_id(z.139), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = z.137
+        z.4   = z.139
+        z.5   = fst(x.238)
+        z.6   = snd(x.238)
+        z.7   = cert_id(z.139)
+    
+    20. cCA   = senc(<z.144, x.247>,
+                     kdf(<'TENC', r1.134>, decaps(cTA.126, skT.136)))
+        cTA   = cTA.126
+        certT = certT.127
+        r1    = r1.134
+        skT   = skT.136
+        z     = cert_id(certT.127)
+        z.1   = verify(cert_sig(z.144), <cert_pk(z.144), cert_id(z.144), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.127),
+                       <cert_pk(certT.127), cert_id(certT.127), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.126, skT.136)
+        z.4   = z.144
+        z.5   = fst(x.247)
+        z.6   = snd(x.247)
+        z.7   = cert_id(z.144)
+    
+    21. cCA   = senc(<z.148, x.251>,
+                     kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))
+        cTA   = cTA.130
+        certT = cert(x.255, sign(<x.255, z.142, 'terminal'>, ca_sk), z.142)
+        r1    = r1.138
+        skT   = skT.140
+        z     = z.142
+        z.1   = verify(cert_sig(z.148), <cert_pk(z.148), cert_id(z.148), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.130, skT.140)
+        z.4   = z.148
+        z.5   = fst(x.251)
+        z.6   = snd(x.251)
+        z.7   = cert_id(z.148)
+    
+    22. cCA   = senc(<z.149, x.252>,
+                     kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))
+        cTA   = cTA.131
+        certT = cert(x.256, x.257, z.143)
+        r1    = r1.139
+        skT   = skT.141
+        z     = z.143
+        z.1   = verify(cert_sig(z.149), <cert_pk(z.149), cert_id(z.149), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.257, <x.256, z.143, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.131, skT.141)
+        z.4   = z.149
+        z.5   = fst(x.252)
+        z.6   = snd(x.252)
+        z.7   = cert_id(z.149)
+    
+    23. cCA   = senc(<z.149, z.150, z.151>,
+                     kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))
+        cTA   = cTA.131
+        certT = cert(x.257, sign(<x.257, z.143, 'terminal'>, ca_sk), z.143)
+        r1    = r1.139
+        skT   = skT.141
+        z     = z.143
+        z.1   = verify(cert_sig(z.149), <cert_pk(z.149), cert_id(z.149), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.131, skT.141)
+        z.4   = z.149
+        z.5   = z.150
+        z.6   = z.151
+        z.7   = cert_id(z.149)
+    
+    24. cCA   = senc(<z.150, z.151, z.152>,
+                     kdf(<'TENC', r1.140>, decaps(cTA.132, skT.142)))
+        cTA   = cTA.132
+        certT = cert(x.258, x.259, z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = verify(cert_sig(z.150), <cert_pk(z.150), cert_id(z.150), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.259, <x.258, z.144, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.132, skT.142)
+        z.4   = z.150
+        z.5   = z.151
+        z.6   = z.152
+        z.7   = cert_id(z.150)
+    
+    25. cCA   = senc(<
+                      cert(x.179, sign(<x.179, z.114, 'chip'>, ca_sk), z.114), x.181>,
+                     kdf(<'TENC', r1.99>, z.107))
+        cTA   = encaps(z.107, pk(skT.101))
+        certT = cert(x.185, sign(<x.185, z.103, 'terminal'>, ca_sk), z.103)
+        r1    = r1.99
+        skT   = skT.101
+        z     = z.103
+        z.1   = true
+        z.2   = true
+        z.3   = z.107
+        z.4   = cert(x.179, sign(<x.179, z.114, 'chip'>, ca_sk), z.114)
+        z.5   = fst(x.181)
+        z.6   = snd(x.181)
+        z.7   = z.114
+    
+    26. cCA   = senc(<cert(x.180, x.181, z.115), x.183>,
+                     kdf(<'TENC', r1.100>, z.108))
+        cTA   = encaps(z.108, pk(skT.102))
+        certT = cert(x.187, sign(<x.187, z.104, 'terminal'>, ca_sk), z.104)
+        r1    = r1.100
+        skT   = skT.102
+        z     = z.104
+        z.1   = verify(x.181, <x.180, z.115, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.108
+        z.4   = cert(x.180, x.181, z.115)
+        z.5   = fst(x.183)
+        z.6   = snd(x.183)
+        z.7   = z.115
+    
+    27. cCA   = senc(<
+                      cert(x.180, sign(<x.180, z.115, 'chip'>, ca_sk), z.115), x.182>,
+                     kdf(<'TENC', r1.100>, z.108))
+        cTA   = encaps(z.108, pk(skT.102))
+        certT = cert(x.186, x.187, z.104)
+        r1    = r1.100
+        skT   = skT.102
+        z     = z.104
+        z.1   = true
+        z.2   = verify(x.187, <x.186, z.104, 'terminal'>, pk(ca_sk))
+        z.3   = z.108
+        z.4   = cert(x.180, sign(<x.180, z.115, 'chip'>, ca_sk), z.115)
+        z.5   = fst(x.182)
+        z.6   = snd(x.182)
+        z.7   = z.115
+    
+    28. cCA   = senc(<
+                      cert(x.180, sign(<x.180, z.115, 'chip'>, ca_sk), z.115), z.111, z.112>,
+                     kdf(<'TENC', r1.100>, z.108))
+        cTA   = encaps(z.108, pk(skT.102))
+        certT = cert(x.187, sign(<x.187, z.104, 'terminal'>, ca_sk), z.104)
+        r1    = r1.100
+        skT   = skT.102
+        z     = z.104
+        z.1   = true
+        z.2   = true
+        z.3   = z.108
+        z.4   = cert(x.180, sign(<x.180, z.115, 'chip'>, ca_sk), z.115)
+        z.5   = z.111
+        z.6   = z.112
+        z.7   = z.115
+    
+    29. cCA   = senc(<cert(x.181, x.182, z.116), x.184>,
+                     kdf(<'TENC', r1.101>, z.109))
+        cTA   = encaps(z.109, pk(skT.103))
+        certT = cert(x.188, x.189, z.105)
+        r1    = r1.101
+        skT   = skT.103
+        z     = z.105
+        z.1   = verify(x.182, <x.181, z.116, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.189, <x.188, z.105, 'terminal'>, pk(ca_sk))
+        z.3   = z.109
+        z.4   = cert(x.181, x.182, z.116)
+        z.5   = fst(x.184)
+        z.6   = snd(x.184)
+        z.7   = z.116
+    
+    30. cCA   = senc(<cert(x.181, x.182, z.116), z.112, z.113>,
+                     kdf(<'TENC', r1.101>, z.109))
+        cTA   = encaps(z.109, pk(skT.103))
+        certT = cert(x.189, sign(<x.189, z.105, 'terminal'>, ca_sk), z.105)
+        r1    = r1.101
+        skT   = skT.103
+        z     = z.105
+        z.1   = verify(x.182, <x.181, z.116, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.109
+        z.4   = cert(x.181, x.182, z.116)
+        z.5   = z.112
+        z.6   = z.113
+        z.7   = z.116
+    
+    31. cCA   = senc(<
+                      cert(x.181, sign(<x.181, z.116, 'chip'>, ca_sk), z.116), z.112, z.113>,
+                     kdf(<'TENC', r1.101>, z.109))
+        cTA   = encaps(z.109, pk(skT.103))
+        certT = cert(x.188, x.189, z.105)
+        r1    = r1.101
+        skT   = skT.103
+        z     = z.105
+        z.1   = true
+        z.2   = verify(x.189, <x.188, z.105, 'terminal'>, pk(ca_sk))
+        z.3   = z.109
+        z.4   = cert(x.181, sign(<x.181, z.116, 'chip'>, ca_sk), z.116)
+        z.5   = z.112
+        z.6   = z.113
+        z.7   = z.116
+    
+    32. cCA   = senc(<cert(x.182, x.183, z.117), z.113, z.114>,
+                     kdf(<'TENC', r1.102>, z.110))
+        cTA   = encaps(z.110, pk(skT.104))
+        certT = cert(x.190, x.191, z.106)
+        r1    = r1.102
+        skT   = skT.104
+        z     = z.106
+        z.1   = verify(x.183, <x.182, z.117, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.191, <x.190, z.106, 'terminal'>, pk(ca_sk))
+        z.3   = z.110
+        z.4   = cert(x.182, x.183, z.117)
+        z.5   = z.113
+        z.6   = z.114
+        z.7   = z.117
+    
+    33. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.143, 'chip'>, ca_sk), z.143), z.139, z.140>,
+                     kdf(<'TENC', r1.128>, z.136))
+        cTA   = encaps(z.136, pk(skT.130))
+        certT = certT.121
+        r1    = r1.128
+        skT   = skT.130
+        z     = cert_id(certT.121)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = z.136
+        z.4   = cert(x.236, sign(<x.236, z.143, 'chip'>, ca_sk), z.143)
+        z.5   = z.139
+        z.6   = z.140
+        z.7   = z.143
+    
+    34. cCA   = senc(<cert(x.237, x.238, z.144), z.140, z.141>,
+                     kdf(<'TENC', r1.129>, z.137))
+        cTA   = encaps(z.137, pk(skT.131))
+        certT = certT.122
+        r1    = r1.129
+        skT   = skT.131
+        z     = cert_id(certT.122)
+        z.1   = verify(x.238, <x.237, z.144, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = z.137
+        z.4   = cert(x.237, x.238, z.144)
+        z.5   = z.140
+        z.6   = z.141
+        z.7   = z.144
+    
+    35. cCA   = senc(<
+                      cert(x.238, sign(<x.238, z.145, 'chip'>, ca_sk), z.145), x.240>,
+                     kdf(<'TENC', r1.130>, z.138))
+        cTA   = encaps(z.138, pk(skT.132))
+        certT = certT.123
+        r1    = r1.130
+        skT   = skT.132
+        z     = cert_id(certT.123)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.123),
+                       <cert_pk(certT.123), cert_id(certT.123), 'terminal'>, pk(ca_sk))
+        z.3   = z.138
+        z.4   = cert(x.238, sign(<x.238, z.145, 'chip'>, ca_sk), z.145)
+        z.5   = fst(x.240)
+        z.6   = snd(x.240)
+        z.7   = z.145
+    
+    36. cCA   = senc(<cert(x.239, x.240, z.146), x.242>,
+                     kdf(<'TENC', r1.131>, z.139))
+        cTA   = encaps(z.139, pk(skT.133))
+        certT = certT.124
+        r1    = r1.131
+        skT   = skT.133
+        z     = cert_id(certT.124)
+        z.1   = verify(x.240, <x.239, z.146, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.124),
+                       <cert_pk(certT.124), cert_id(certT.124), 'terminal'>, pk(ca_sk))
+        z.3   = z.139
+        z.4   = cert(x.239, x.240, z.146)
+        z.5   = fst(x.242)
+        z.6   = snd(x.242)
+        z.7   = z.146
+    
+    37. cCA   = senc(<
+                      cert(x.245, sign(<x.245, z.148, 'chip'>, ca_sk), z.148), z.144, z.145>,
+                     kdf(<'TENC', r1.133>, decaps(cTA.125, skT.135)))
+        cTA   = cTA.125
+        certT = certT.126
+        r1    = r1.133
+        skT   = skT.135
+        z     = cert_id(certT.126)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.126),
+                       <cert_pk(certT.126), cert_id(certT.126), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.125, skT.135)
+        z.4   = cert(x.245, sign(<x.245, z.148, 'chip'>, ca_sk), z.148)
+        z.5   = z.144
+        z.6   = z.145
+        z.7   = z.148
+    
+    38. cCA   = senc(<cert(x.246, x.247, z.149), z.145, z.146>,
+                     kdf(<'TENC', r1.134>, decaps(cTA.126, skT.136)))
+        cTA   = cTA.126
+        certT = certT.127
+        r1    = r1.134
+        skT   = skT.136
+        z     = cert_id(certT.127)
+        z.1   = verify(x.247, <x.246, z.149, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.127),
+                       <cert_pk(certT.127), cert_id(certT.127), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.126, skT.136)
+        z.4   = cert(x.246, x.247, z.149)
+        z.5   = z.145
+        z.6   = z.146
+        z.7   = z.149
+    
+    39. cCA   = senc(<
+                      cert(x.247, sign(<x.247, z.150, 'chip'>, ca_sk), z.150), x.249>,
+                     kdf(<'TENC', r1.135>, decaps(cTA.127, skT.137)))
+        cTA   = cTA.127
+        certT = certT.128
+        r1    = r1.135
+        skT   = skT.137
+        z     = cert_id(certT.128)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.128),
+                       <cert_pk(certT.128), cert_id(certT.128), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.127, skT.137)
+        z.4   = cert(x.247, sign(<x.247, z.150, 'chip'>, ca_sk), z.150)
+        z.5   = fst(x.249)
+        z.6   = snd(x.249)
+        z.7   = z.150
+    
+    40. cCA   = senc(<cert(x.248, x.249, z.151), x.251>,
+                     kdf(<'TENC', r1.136>, decaps(cTA.128, skT.138)))
+        cTA   = cTA.128
+        certT = certT.129
+        r1    = r1.136
+        skT   = skT.138
+        z     = cert_id(certT.129)
+        z.1   = verify(x.249, <x.248, z.151, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.129),
+                       <cert_pk(certT.129), cert_id(certT.129), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.128, skT.138)
+        z.4   = cert(x.248, x.249, z.151)
+        z.5   = fst(x.251)
+        z.6   = snd(x.251)
+        z.7   = z.151
+    
+    41. cCA   = senc(<
+                      cert(x.251, sign(<x.251, z.154, 'chip'>, ca_sk), z.154), x.253>,
+                     kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))
+        cTA   = cTA.131
+        certT = cert(x.257, sign(<x.257, z.143, 'terminal'>, ca_sk), z.143)
+        r1    = r1.139
+        skT   = skT.141
+        z     = z.143
+        z.1   = true
+        z.2   = true
+        z.3   = decaps(cTA.131, skT.141)
+        z.4   = cert(x.251, sign(<x.251, z.154, 'chip'>, ca_sk), z.154)
+        z.5   = fst(x.253)
+        z.6   = snd(x.253)
+        z.7   = z.154
+    
+    42. cCA   = senc(<cert(x.252, x.253, z.155), x.255>,
+                     kdf(<'TENC', r1.140>, decaps(cTA.132, skT.142)))
+        cTA   = cTA.132
+        certT = cert(x.259, sign(<x.259, z.144, 'terminal'>, ca_sk), z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = verify(x.253, <x.252, z.155, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.132, skT.142)
+        z.4   = cert(x.252, x.253, z.155)
+        z.5   = fst(x.255)
+        z.6   = snd(x.255)
+        z.7   = z.155
+    
+    43. cCA   = senc(<
+                      cert(x.252, sign(<x.252, z.155, 'chip'>, ca_sk), z.155), x.254>,
+                     kdf(<'TENC', r1.140>, decaps(cTA.132, skT.142)))
+        cTA   = cTA.132
+        certT = cert(x.258, x.259, z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = true
+        z.2   = verify(x.259, <x.258, z.144, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.132, skT.142)
+        z.4   = cert(x.252, sign(<x.252, z.155, 'chip'>, ca_sk), z.155)
+        z.5   = fst(x.254)
+        z.6   = snd(x.254)
+        z.7   = z.155
+    
+    44. cCA   = senc(<
+                      cert(x.252, sign(<x.252, z.155, 'chip'>, ca_sk), z.155), z.151, z.152>,
+                     kdf(<'TENC', r1.140>, decaps(cTA.132, skT.142)))
+        cTA   = cTA.132
+        certT = cert(x.259, sign(<x.259, z.144, 'terminal'>, ca_sk), z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = true
+        z.2   = true
+        z.3   = decaps(cTA.132, skT.142)
+        z.4   = cert(x.252, sign(<x.252, z.155, 'chip'>, ca_sk), z.155)
+        z.5   = z.151
+        z.6   = z.152
+        z.7   = z.155
+    
+    45. cCA   = senc(<cert(x.253, x.254, z.156), x.256>,
+                     kdf(<'TENC', r1.141>, decaps(cTA.133, skT.143)))
+        cTA   = cTA.133
+        certT = cert(x.260, x.261, z.145)
+        r1    = r1.141
+        skT   = skT.143
+        z     = z.145
+        z.1   = verify(x.254, <x.253, z.156, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.261, <x.260, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.133, skT.143)
+        z.4   = cert(x.253, x.254, z.156)
+        z.5   = fst(x.256)
+        z.6   = snd(x.256)
+        z.7   = z.156
+    
+    46. cCA   = senc(<cert(x.253, x.254, z.156), z.152, z.153>,
+                     kdf(<'TENC', r1.141>, decaps(cTA.133, skT.143)))
+        cTA   = cTA.133
+        certT = cert(x.261, sign(<x.261, z.145, 'terminal'>, ca_sk), z.145)
+        r1    = r1.141
+        skT   = skT.143
+        z     = z.145
+        z.1   = verify(x.254, <x.253, z.156, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.133, skT.143)
+        z.4   = cert(x.253, x.254, z.156)
+        z.5   = z.152
+        z.6   = z.153
+        z.7   = z.156
+    
+    47. cCA   = senc(<
+                      cert(x.253, sign(<x.253, z.156, 'chip'>, ca_sk), z.156), z.152, z.153>,
+                     kdf(<'TENC', r1.141>, decaps(cTA.133, skT.143)))
+        cTA   = cTA.133
+        certT = cert(x.260, x.261, z.145)
+        r1    = r1.141
+        skT   = skT.143
+        z     = z.145
+        z.1   = true
+        z.2   = verify(x.261, <x.260, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.133, skT.143)
+        z.4   = cert(x.253, sign(<x.253, z.156, 'chip'>, ca_sk), z.156)
+        z.5   = z.152
+        z.6   = z.153
+        z.7   = z.156
+    
+    48. cCA   = senc(<cert(x.254, x.255, z.157), z.153, z.154>,
+                     kdf(<'TENC', r1.142>, decaps(cTA.134, skT.144)))
+        cTA   = cTA.134
+        certT = cert(x.262, x.263, z.146)
+        r1    = r1.142
+        skT   = skT.144
+        z     = z.146
+        z.1   = verify(x.255, <x.254, z.157, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.263, <x.262, z.146, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.134, skT.144)
+        z.4   = cert(x.254, x.255, z.157)
+        z.5   = z.153
+        z.6   = z.154
+        z.7   = z.157
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2,
+                  skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                          <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( mac(<'CA', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                kdf(<'TMAC', ~r1>, ~kTA))
+                       ) @ #vk.3 )
+                  case c_mac
+                  solve( !KU( ~r2 ) @ #vk.43 )
+                    case CA_INIT_C
+                    solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.17 )
+                      case TA_RESPONSE_T
+                      solve( !KU( senc(<
+                                        cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                        pk(~skCe)>,
+                                       kdf(<'TENC', r1.1>, decaps(cTA, ~skT)))
+                             ) @ #vk.36 )
+                        case c_senc
+                        solve( !KU( kdf(<'TMAC', ~r1>, ~kTA) ) @ #vk.44 )
+                          case c_kdf
+                          solve( !KU( ~kTA ) @ #vk.56 )
+                            case TA_CHALLENGE_C
+                            solve( !KU( ~ltk.1 ) @ #vk.58 )
+                              case Corrupt_ltk
+                              solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.52 )
+                                case c_kdf
+                                solve( !KU( encaps(~kTA, pk(~skT.1)) ) @ #vk.57 )
+                                  case TA_CHALLENGE_C
+                                  solve( !KU( kdf(<'TENC', r1.1>, decaps(cTA, ~skT)) ) @ #vk.58 )
+                                    case c_kdf
+                                    solve( !KU( decaps(cTA, ~skT) ) @ #vk.62 )
+                                      case c_decaps
+                                      solve( !KU( ~skT ) @ #vk.63 )
+                                        case Corrupt_ltk
+                                        solve( !KU( ~r1 ) @ #vk.59 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( cert(pk(~ltk.1),
+                                                           sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T)
+                                                 ) @ #vk.38 )
+                                            case CA_Sign_ltk
+                                            solve( !KU( kdf(<'CNF', 
+                                                             cert(pk(~ltk.1),
+                                                                  sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                                  $T), 
+                                                             cert(pk(~ltk),
+                                                                  sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                             ~r2, encaps(~k, pk(~ltk)), pk(~skCe), 
+                                                             encaps(~ke, pk(~skCe))>,
+                                                            <~k, ~ke>)
+                                                   ) @ #vk.43 )
+                                              case CA_FINISH_C
+                                              solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.31 )
+                                                case CA_INIT_T
+                                                solve( !KU( encaps(~ke, pk(~skCe)) ) @ #vk.35 )
+                                                  case CA_INIT_T
+                                                  solve( !KU( cert(pk(~ltk),
+                                                                   sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                                         ) @ #vk.59 )
+                                                    case CA_Sign_ltk
+                                                    solve( !KU( pk(~skCe) ) @ #vk.60 )
+                                                      case CA_INIT_C
+                                                      SOLVED // trace found
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2,
+                  skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                          <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case CA_FINISH_C
+                solve( CAInitC( <$C, iid.1>, cert(x, x.1, $T), id_c.1, r1.1,
+                                <kTA.1, cTA>, kTMAC, kTENC, r2.1, skCe.1
+                       ) ▶₁ #i2 )
+                  case CA_INIT_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( kdf(<'KEY', 
+                                             cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), 
+                                             ~r2.1, cip, pk(~skCe.1), cipe>,
+                                            <z, z.1>),
+                                        <cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1, 
+                                         cip, pk(~skCe.1), cipe>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( CAInitT( <$T, iid.3>, id_c.3, kTMAC, kTENC,
+                                        cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1,
+                                        <z, cip>, <z.1, cipe>, pk(~skCe.1)
+                               ) ▶₁ #j2 )
+                          case CA_INIT_T
+                          solve( !Cert( $T, cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( splitEqs(2) )
+                              case split_case_1
+                              solve( splitEqs(5) )
+                                case split_case_1
+                                solve( !KU( mac(<'CA', 
+                                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                      $T), 
+                                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                 ~r2, encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))
+                                                >,
+                                                kdf(<'TMAC', ~r1>, ~kTA))
+                                       ) @ #vk.3 )
+                                  case c_mac
+                                  solve( !KU( ~r2 ) @ #vk.63 )
+                                    case CA_INIT_C
+                                    solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.22 )
+                                      case TA_RESPONSE_T
+                                      solve( !KU( senc(<
+                                                        cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                             $C), 
+                                                        ~r2, pk(~skCe)>,
+                                                       kdf(<'TENC', r1.2>, decaps(cTA, ~skT)))
+                                             ) @ #vk.46 )
+                                        case c_senc
+                                        solve( !KU( mac(<'CA', 
+                                                         cert(pk(~ltk.2),
+                                                              sign(<pk(~ltk.2), $T, 'terminal'>, ca_sk), $T), 
+                                                         cert(pk(~skC), sign(<pk(~skC), $C, 'chip'>, ca_sk),
+                                                              $C), 
+                                                         ~r2.1, encaps(~k.1, pk(~skC)), pk(~skCe.1), 
+                                                         encaps(~ke.1, pk(~skCe.1))>,
+                                                        kdf(<'TMAC', ~r1.1>, ~kTA.1))
+                                               ) @ #vk.55 )
+                                          case CA_INIT_T
+                                          solve( !KU( senc(<
+                                                            cert(pk(~skC),
+                                                                 sign(<pk(~skC), $C, 'chip'>, ca_sk), $C), 
+                                                            ~r2.1, pk(~skCe.1)>,
+                                                           kdf(<'TENC', ~r1.1>, ~kTA.1))
+                                                 ) @ #vk.62 )
+                                            case CA_INIT_C
+                                            solve( !KU( encaps(~kTA.1, pk(~skT.1)) ) @ #vk.65 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( kdf(<'TMAC', ~r1>, ~kTA) ) @ #vk.66 )
+                                                case c_kdf
+                                                solve( !KU( ~kTA ) @ #vk.76 )
+                                                  case TA_CHALLENGE_C
+                                                  solve( !KU( ~ltk.1 ) @ #vk.78 )
+                                                    case Corrupt_ltk
+                                                    solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.72 )
+                                                      case c_kdf
+                                                      solve( !KU( encaps(~kTA, pk(~skT.2)) ) @ #vk.77 )
+                                                        case TA_CHALLENGE_C
+                                                        solve( !KU( kdf(<'TENC', r1.2>, decaps(cTA, ~skT.1))
+                                                               ) @ #vk.78 )
+                                                          case c_kdf
+                                                          solve( !KU( decaps(cTA, ~skT.1) ) @ #vk.82 )
+                                                            case c_decaps
+                                                            solve( !KU( ~skT.1 ) @ #vk.83 )
+                                                              case Corrupt_ltk
+                                                              solve( !KU( ~r1 ) @ #vk.79 )
+                                                                case TA_CHALLENGE_C
+                                                                solve( !KU( ~r1.1 ) @ #vk.75 )
+                                                                  case TA_CHALLENGE_C
+                                                                  solve( !KU( cert(pk(~ltk.1),
+                                                                                   sign(<pk(~ltk.1), $T, 
+                                                                                         'terminal'>,
+                                                                                        ca_sk),
+                                                                                   $T)
+                                                                         ) @ #vk.53 )
+                                                                    case CA_Sign_ltk
+                                                                    solve( !KU( kdf(<'CNF', 
+                                                                                     cert(pk(~ltk.1),
+                                                                                          sign(<pk(~ltk.1), 
+                                                                                                $T, 'terminal'
+                                                                                               >,
+                                                                                               ca_sk),
+                                                                                          $T), 
+                                                                                     cert(pk(~ltk),
+                                                                                          sign(<pk(~ltk), $C, 
+                                                                                                'chip'>,
+                                                                                               ca_sk),
+                                                                                          $C), 
+                                                                                     ~r2, 
+                                                                                     encaps(~k, pk(~ltk)), 
+                                                                                     pk(~skCe), 
+                                                                                     encaps(~ke, pk(~skCe))>,
+                                                                                    <~k, ~ke>)
+                                                                           ) @ #vk.56 )
+                                                                      case CA_FINISH_C
+                                                                      solve( !KU( encaps(~k, pk(~ltk))
+                                                                             ) @ #vk.41 )
+                                                                        case CA_INIT_T
+                                                                        solve( !KU( encaps(~ke, pk(~skCe))
+                                                                               ) @ #vk.45 )
+                                                                          case CA_INIT_T
+                                                                          solve( !KU( kdf(<'TCNF', ~r1.1>,
+                                                                                          ~kTA.1)
+                                                                                 ) @ #vk.74 )
+                                                                            case TA_RESPONSE_T
+                                                                            solve( !KU( encaps(~kTA.1,
+                                                                                               pk(~skT.2))
+                                                                                   ) @ #vk.88 )
+                                                                              case TA_CHALLENGE_C
+                                                                              solve( !KU( cert(pk(~skT),
+                                                                                               sign(<
+                                                                                                     pk(~skT), 
+                                                                                                     $T, 
+                                                                                                     'terminal'
+                                                                                                    >,
+                                                                                                    ca_sk),
+                                                                                               $T)
+                                                                                     ) @ #vk.76 )
+                                                                                case CA_Sign_ltk
+                                                                                solve( !KU( kdf(<'CNF', 
+                                                                                                 cert(pk(~skT),
+                                                                                                      sign(<
+                                                                                                            pk(~skT), 
+                                                                                                            $T, 
+                                                                                                            'terminal'
+                                                                                                           >,
+                                                                                                           ca_sk),
+                                                                                                      $T), 
+                                                                                                 cert(pk(~skC),
+                                                                                                      sign(<
+                                                                                                            pk(~skC), 
+                                                                                                            $C, 
+                                                                                                            'chip'
+                                                                                                           >,
+                                                                                                           ca_sk),
+                                                                                                      $C), 
+                                                                                                 ~r2.1, 
+                                                                                                 encaps(~k.1,
+                                                                                                        pk(~skC)), 
+                                                                                                 pk(~skCe.1), 
+                                                                                                 encaps(~ke.1,
+                                                                                                        pk(~skCe.1))
+                                                                                                >,
+                                                                                                <~k.1, ~ke.1>)
+                                                                                       ) @ #vk.77 )
+                                                                                  case CA_FINISH_C
+                                                                                  solve( !KU( encaps(~k.1,
+                                                                                                     pk(~skC))
+                                                                                         ) @ #vk.76 )
+                                                                                    case CA_INIT_T
+                                                                                    solve( !KU( encaps(~ke.1,
+                                                                                                       pk(~skCe.1))
+                                                                                           ) @ #vk.77 )
+                                                                                      case CA_INIT_T
+                                                                                      solve( !KU( cert(pk(~ltk),
+                                                                                                       sign(<
+                                                                                                             pk(~ltk), 
+                                                                                                             $C, 
+                                                                                                             'chip'
+                                                                                                            >,
+                                                                                                            ca_sk),
+                                                                                                       $C)
+                                                                                             ) @ #vk.80 )
+                                                                                        case CA_INIT_C
+                                                                                        solve( !KU( kdf(<
+                                                                                                         'TENC', 
+                                                                                                         ~r1.3
+                                                                                                        >,
+                                                                                                        ~kTA.2)
+                                                                                               ) @ #vk.88 )
+                                                                                          case c_kdf
+                                                                                          solve( !KU( ~kTA.2
+                                                                                                 ) @ #vk.92 )
+                                                                                            case TA_CHALLENGE_C
+                                                                                            solve( !KU( kdf(<
+                                                                                                             'TCNF', 
+                                                                                                             ~r1.3
+                                                                                                            >,
+                                                                                                            ~kTA.2)
+                                                                                                   ) @ #vk.91 )
+                                                                                              case TA_RESPONSE_T
+                                                                                              solve( !KU( cert(pk(sk),
+                                                                                                               sign(<
+                                                                                                                     pk(sk), 
+                                                                                                                     z, 
+                                                                                                                     'terminal'
+                                                                                                                    >,
+                                                                                                                    ca_sk),
+                                                                                                               z)
+                                                                                                     ) @ #vk.93 )
+                                                                                                case CA_Sign_ltk
+                                                                                                solve( !KU( ~ltk.5
+                                                                                                       ) @ #vk.97 )
+                                                                                                  case Corrupt_ltk
+                                                                                                  solve( !KU( encaps(~kTA.2,
+                                                                                                                     pk(~skT.2))
+                                                                                                         ) @ #vk.99 )
+                                                                                                    case TA_CHALLENGE_C
+                                                                                                    solve( !KU( ~r1.3
+                                                                                                           ) @ #vk.98 )
+                                                                                                      case TA_CHALLENGE_C
+                                                                                                      solve( !KU( pk(~skCe)
+                                                                                                             ) @ #vk.93 )
+                                                                                                        case CA_INIT_C
+                                                                                                        SOLVED // trace found
+                                                                                                      qed
+                                                                                                    qed
+                                                                                                  qed
+                                                                                                qed
+                                                                                              qed
+                                                                                            qed
+                                                                                          qed
+                                                                                        qed
+                                                                                      qed
+                                                                                    qed
+                                                                                  qed
+                                                                                qed
+                                                                              qed
+                                                                            qed
+                                                                          qed
+                                                                        qed
+                                                                      qed
+                                                                    qed
+                                                                  qed
+                                                                qed
+                                                              qed
+                                                            qed
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>,
+                <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>,
+                      cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                      <kTA, cTA>, kTMAC, kTENC, r2, skCe
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>,
+                <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c, kTMAC, kTENC,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( splitEqs(2) )
+            case split_case_1
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                             encaps(~ke, pkCe)>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case CA_FINISH_C
+              by contradiction /* from formulas */
+            next
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                solve( !KU( ~ke ) @ #vk.32 )
+                  case CA_INIT_T
+                  solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2, 
+                                    pk(sk.1)>,
+                                   kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                         ) @ #vk.15 )
+                    case c_senc
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.28 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.35 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.35 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.39 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.36 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.36 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.43 )
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          next
+            case split_case_2
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, C, 'chip'>, ca_sk), C), fst(x), encaps(~k, z), snd(x), 
+                             encaps(~ke, snd(x))>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                by solve( !KU( ~ke ) @ #vk.32 )
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( splitEqs(2) )
+            case split_case_1
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                             encaps(~ke, pkCe)>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case CA_FINISH_C
+              by contradiction /* from formulas */
+            next
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                solve( !KU( ~ke ) @ #vk.32 )
+                  case CA_INIT_T
+                  solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2, 
+                                    pk(sk.1)>,
+                                   kdf(<'TENC', r1>, z))
+                         ) @ #vk.15 )
+                    case CA_INIT_C
+                    solve( !KU( ~r2 ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.33 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  next
+                    case c_senc
+                    solve( !KU( encaps(z, pk(~skT)) ) @ #vk.21 )
+                      case CA_INIT_T_case_1
+                      solve( splitEqs(11) )
+                        case split_case_1
+                        solve( splitEqs(12) )
+                          case split_case_1
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case split_case_2
+                        solve( splitEqs(12) )
+                          case split_case_1
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case CA_INIT_T_case_2
+                      solve( splitEqs(11) )
+                        case split_case_1
+                        solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                               ) @ #vk.33 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_cert
+                          solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.51 )
+                          qed
+                        qed
+                      next
+                        case split_case_2
+                        solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                               ) @ #vk.33 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_cert
+                          solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.51 )
+                          qed
+                        qed
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                             ) @ #vk.30 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.44 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.48 )
+                        qed
+                      qed
+                    next
+                      case c_encaps
+                      solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                             ) @ #vk.30 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.41 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.45 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          next
+            case split_case_2
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, C, 'chip'>, ca_sk), C), fst(x), encaps(~k, z), snd(x), 
+                             encaps(~ke, snd(x))>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                by solve( !KU( ~ke ) @ #vk.32 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>,
+                <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>,
+                      cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                      <kTA, cTA>, kTMAC, kTENC, r2, skCe
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              solve( splitEqs(3) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.43 )
+                    case CA_INIT_C
+                    solve( !KU( ~k ) @ #vk.45 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.46 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.48 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            next
+              case split_case_2
+              solve( splitEqs(3) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.43 )
+                    case CA_INIT_C
+                    solve( !KU( ~k ) @ #vk.45 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.46 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.48 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>,
+                <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c, kTMAC, kTENC,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( splitEqs(2) )
+            case split_case_1
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                             encaps(~ke, pkCe)>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case CA_FINISH_C
+              by contradiction /* from formulas */
+            next
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                solve( !KU( ~ke ) @ #vk.32 )
+                  case CA_INIT_T
+                  solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2, 
+                                    pk(sk.1)>,
+                                   kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                         ) @ #vk.15 )
+                    case c_senc
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.28 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.35 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.35 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.39 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.36 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.36 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.43 )
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          next
+            case split_case_2
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, C, 'chip'>, ca_sk), C), fst(x), encaps(~k, z), snd(x), 
+                             encaps(~ke, snd(x))>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                by solve( !KU( ~ke ) @ #vk.32 )
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( splitEqs(2) )
+            case split_case_1
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                             encaps(~ke, pkCe)>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case CA_FINISH_C
+              by contradiction /* from formulas */
+            next
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                solve( !KU( ~ke ) @ #vk.32 )
+                  case CA_INIT_T
+                  solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2, 
+                                    pk(sk.1)>,
+                                   kdf(<'TENC', r1>, z))
+                         ) @ #vk.15 )
+                    case CA_INIT_C
+                    solve( !KU( ~r2 ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.33 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  next
+                    case c_senc
+                    solve( !KU( encaps(z, pk(~skT)) ) @ #vk.21 )
+                      case CA_INIT_T_case_1
+                      solve( splitEqs(11) )
+                        case split_case_1
+                        solve( splitEqs(12) )
+                          case split_case_1
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case split_case_2
+                        solve( splitEqs(12) )
+                          case split_case_1
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case CA_INIT_T_case_2
+                      solve( splitEqs(11) )
+                        case split_case_1
+                        solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                               ) @ #vk.33 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_cert
+                          solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.51 )
+                          qed
+                        qed
+                      next
+                        case split_case_2
+                        solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                               ) @ #vk.33 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_cert
+                          solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.47 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.51 )
+                          qed
+                        qed
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                             ) @ #vk.30 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.44 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.48 )
+                        qed
+                      qed
+                    next
+                      case c_encaps
+                      solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                             ) @ #vk.30 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.41 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.45 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          next
+            case split_case_2
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, C, 'chip'>, ca_sk), C), fst(x), encaps(~k, z), snd(x), 
+                             encaps(~ke, snd(x))>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                by solve( !KU( ~ke ) @ #vk.32 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>,
+                <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_C
+      by contradiction /* from formulas */
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c, kTMAC, kTENC,
+                      cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( splitEqs(2) )
+            case split_case_1
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                             encaps(~ke, pkCe)>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case CA_FINISH_C
+              by contradiction /* from formulas */
+            next
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                solve( !KU( ~ke ) @ #vk.32 )
+                  case CA_INIT_T
+                  solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B), r2, 
+                                    pk(sk.1)>,
+                                   kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                         ) @ #vk.15 )
+                    case c_senc
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                           ) @ #vk.28 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.35 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.35 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.39 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.36 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.36 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.43 )
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          next
+            case split_case_2
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, B, 'chip'>, ca_sk), B), fst(x), encaps(~k, z), snd(x), 
+                             encaps(~ke, snd(x))>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                by solve( !KU( ~ke ) @ #vk.32 )
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( splitEqs(2) )
+            case split_case_1
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                             encaps(~ke, pkCe)>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case CA_FINISH_C
+              by contradiction /* from formulas */
+            next
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                solve( !KU( ~ke ) @ #vk.32 )
+                  case CA_INIT_T
+                  solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B), r2, 
+                                    pk(sk.1)>,
+                                   kdf(<'TENC', r1>, z))
+                         ) @ #vk.15 )
+                    case CA_INIT_C
+                    solve( !KU( ~r2 ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.33 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  next
+                    case c_senc
+                    solve( !KU( encaps(z, pk(~skT)) ) @ #vk.21 )
+                      case CA_INIT_T_case_1
+                      solve( splitEqs(11) )
+                        case split_case_1
+                        solve( splitEqs(12) )
+                          case split_case_1
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        qed
+                      next
+                        case split_case_2
+                        solve( splitEqs(12) )
+                          case split_case_1
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                                 ) @ #vk.34 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.39 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_cert
+                            solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.47 )
+                              case CA_INIT_C
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case CA_Sign_ltk
+                              solve( !KU( ~ltk.1 ) @ #vk.40 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            next
+                              case c_sign
+                              by solve( !KU( ca_sk ) @ #vk.51 )
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case CA_INIT_T_case_2
+                      solve( splitEqs(11) )
+                        case split_case_1
+                        solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                               ) @ #vk.33 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_cert
+                          solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.47 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.51 )
+                          qed
+                        qed
+                      next
+                        case split_case_2
+                        solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                               ) @ #vk.33 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.39 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_cert
+                          solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.47 )
+                            case CA_INIT_C
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case CA_Sign_ltk
+                            solve( !KU( ~ltk.1 ) @ #vk.40 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          next
+                            case c_sign
+                            by solve( !KU( ca_sk ) @ #vk.51 )
+                          qed
+                        qed
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                             ) @ #vk.30 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.44 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.48 )
+                        qed
+                      qed
+                    next
+                      case c_encaps
+                      solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                             ) @ #vk.30 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_cert
+                        solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.41 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case CA_Sign_ltk
+                          solve( !KU( ~ltk.1 ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        next
+                          case c_sign
+                          by solve( !KU( ca_sk ) @ #vk.45 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          next
+            case split_case_2
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                             cert(z, sign(<z, B, 'chip'>, ca_sk), B), fst(x), encaps(~k, z), snd(x), 
+                             encaps(~ke, snd(x))>,
+                            <~k, ~ke>)
+                   ) @ #vk.1 )
+              case c_kdf
+              solve( !KU( ~k ) @ #vk.31 )
+                case CA_INIT_T
+                by solve( !KU( ~ke ) @ #vk.32 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2,
+                      skCe
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z.1, z.2>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case CA_FINISH_C
+              solve( CAInitC( <$C, iid.1>, cert(z, sign(<z, B, 'terminal'>, ca_sk), B),
+                              id_c.1, r1.1, <kTA.1, cTA>, kTMAC, kTENC, ~r2, ~skCe
+                     ) ▶₁ #j )
+                case CA_INIT_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>,
+                      <ke, cipe>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                                 encaps(~ke, pkCe)>,
+                                <~k, ~ke>),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>,
+                            <~ke, encaps(~ke, pkCe)>, pkCe
+                   ) ▶₁ #j )
+              case CA_INIT_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2,
+                      skCe
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z.1, z.2>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case CA_FINISH_C
+              solve( CAInitC( <$C, iid.1>, cert(z, sign(<z, B, 'terminal'>, ca_sk), B),
+                              id_c.1, r1.1, <kTA.1, cTA>, kTMAC, kTENC, ~r2, ~skCe
+                     ) ▶₁ #j )
+                case CA_INIT_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>,
+                      <ke, cipe>, pkCe
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                                 encaps(~ke, pkCe)>,
+                                <~k, ~ke>),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>,
+                            <~ke, encaps(~ke, pkCe)>, pkCe
+                   ) ▶₁ #j )
+              case CA_INIT_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_C
+    solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2,
+                    skCe
+           ) ▶₁ #i )
+      case CA_INIT_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                 pk(~skCe), cipe>,
+                                <z.1, z.2>),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  next
+    case CA_FINISH_T
+    solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>,
+                    <ke, cipe>, pkCe
+           ) ▶₁ #i )
+      case CA_INIT_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                               cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                               encaps(~ke, pkCe)>,
+                              <~k, ~ke>),
+                          sid2, $T, 'terminal', B
+               ) @ #j )
+          case CA_FINISH_T
+          by contradiction /* from formulas */
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2,
+                  skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>,
+                          <ke, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( splitEqs(2) )
+                  case split_case_1
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.3 )
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.43 )
+                      case CA_INIT_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.17 )
+                        case TA_RESPONSE_T
+                        solve( !KU( kdf(<'CNF', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                        <~k, ~ke>)
+                               ) @ #vk.25 )
+                          case c_kdf
+                          solve( !KU( ~k ) @ #vk.55 )
+                            case CA_INIT_T
+                            solve( !KU( ~ke ) @ #vk.56 )
+                              case CA_INIT_T
+                              solve( !KU( ~ltk ) @ #vk.57 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.47 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.50 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                            <~k, ~ke>)
+                                   ) @ #vk.27 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.54 )
+                                case CA_INIT_T
+                                solve( !KU( ~ke ) @ #vk.55 )
+                                  case CA_INIT_T
+                                  solve( !KU( ~ltk ) @ #vk.56 )
+                                    case Corrupt_ltk
+                                    by contradiction /* from formulas */
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case split_case_2
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.3 )
+                    case CA_INIT_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.18 )
+                      case c_kdf
+                      solve( !KU( ~r2 ) @ #vk.43 )
+                        case CA_INIT_C
+                        solve( !KU( ~k ) @ #vk.45 )
+                          case CA_INIT_T
+                          solve( !KU( ~ke ) @ #vk.46 )
+                            case CA_INIT_T
+                            solve( !KU( ~ltk ) @ #vk.48 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.43 )
+                      case CA_INIT_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.17 )
+                        case TA_RESPONSE_T
+                        solve( !KU( kdf(<'CNF', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                        <~k, ~ke>)
+                               ) @ #vk.25 )
+                          case c_kdf
+                          solve( !KU( ~k ) @ #vk.55 )
+                            case CA_INIT_T
+                            solve( !KU( ~ke ) @ #vk.56 )
+                              case CA_INIT_T
+                              solve( !KU( ~ltk ) @ #vk.57 )
+                                case Corrupt_ltk
+                                by contradiction /* from formulas */
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.47 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.50 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                            <~k, ~ke>)
+                                   ) @ #vk.27 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.54 )
+                                case CA_INIT_T
+                                solve( !KU( ~ke ) @ #vk.55 )
+                                  case CA_INIT_T
+                                  solve( !KU( ~ltk ) @ #vk.56 )
+                                    case Corrupt_ltk
+                                    by contradiction /* from formulas */
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2,
+                  skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                          <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.44 )
+                    case CA_INIT_C
+                    solve( !KU( ~k ) @ #vk.46 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.47 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.49 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.44 )
+                    case CA_INIT_C
+                    solve( !KU( ~k ) @ #vk.46 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.47 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.49 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, certT, id_c, r1, <kTA, cTA> ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !KU( ~iid ) @ #vk.6 )
+    case CA_INIT_C
+    by contradiction /* cyclic */
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !KU( cert(x, sign(<x, T, 'terminal'>, ca_sk), T) ) @ #vk.1 )
+      case CA_Sign_ltk
+      solve( !KU( senc(<cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z>,
+                       kdf(<'TENC', r1>, kTA))
+             ) @ #vk.11 )
+        case c_senc
+        solve( !KU( mac(<'CA', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                         cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z, cip, pk(skCe), cipe>,
+                        kdf(<'TMAC', r1>, kTA))
+               ) @ #vk.15 )
+          case c_mac
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                           cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z, cip, pk(skCe), cipe>,
+                          <z.1, z.2>)
+                 ) @ #vk.21 )
+            case c_kdf
+            solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.30 )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_3
+                solve( !KU( encaps(z.1, pk(~ltk.2)) ) @ #vk.23 )
+                  case c_encaps
+                  solve( !KU( decaps(cipe, skCe) ) @ #vk.39 )
+                    case c_decaps
+                    solve( !KU( kdf(<'TCNF', r1>, kTA) ) @ #vk.25 )
+                      case c_kdf
+                      solve( !KU( kdf(<'TENC', r1>, kTA) ) @ #vk.34 )
+                        case c_kdf
+                        solve( !KU( kdf(<'TMAC', r1>, kTA) ) @ #vk.37 )
+                          case c_kdf
+                          solve( !KU( pk(skCe) ) @ #vk.40 )
+                            case CA_Sign_ltk_case_1
+                            solve( !KU( ~ltk.3 ) @ #vk.38 )
+                              case Corrupt_ltk
+                              solve( !KU( pk(~ltk.2) ) @ #vk.43 )
+                                case CA_Sign_ltk
+                                SOLVED // trace found
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !Ltk( T, skT, 'terminal' ) ▶₂ #i )
+    case Generate_terminal_key_pair
+    solve( !KU( cert(x, sign(<x, $A, 'terminal'>, ca_sk), $A) ) @ #vk.1 )
+      case CA_Sign_ltk
+      solve( !KU( senc(<cert(x, sign(<x, C, 'chip'>, ca_sk), C), x.1>,
+                       kdf(<'TENC', r1>, z))
+             ) @ #vk.11 )
+        case c_senc
+        solve( !KU( mac(<'CA', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                         cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1, cip, z.2, cipe>,
+                        kdf(<'TMAC', r1>, z))
+               ) @ #vk.15 )
+          case c_mac
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                           cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1, cip, z.2, cipe>,
+                          <k, ke>)
+                 ) @ #vk.21 )
+            case c_kdf
+            solve( !KU( cert(x, sign(<x, C, 'chip'>, ca_sk), C) ) @ #vk.30 )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_4
+                solve( !KU( encaps(z, pk(~ltk.1)) ) @ #vk.21 )
+                  case c_encaps
+                  solve( !KU( kdf(<'TCNF', r1>, z) ) @ #vk.22 )
+                    case c_kdf
+                    solve( !KU( kdf(<'TENC', r1>, z) ) @ #vk.32 )
+                      case c_kdf
+                      solve( !KU( kdf(<'TMAC', r1>, z) ) @ #vk.35 )
+                        case c_kdf
+                        solve( !KU( pk(~ltk.1) ) @ #vk.42 )
+                          case CA_Sign_ltk
+                          SOLVED // trace found
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2,
+                  skCe
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                          <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.44 )
+                    case CA_INIT_C
+                    solve( !KU( ~k ) @ #vk.46 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.47 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.49 )
+                          case Corrupt_ltk
+                          by solve( !KU( ~skCe ) @ #vk.50 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.44 )
+                    case CA_INIT_C
+                    solve( !KU( ~k ) @ #vk.46 )
+                      case CA_INIT_T
+                      solve( !KU( ~ke ) @ #vk.47 )
+                        case CA_INIT_T
+                        solve( !KU( ~ltk ) @ #vk.49 )
+                          case Corrupt_ltk
+                          by solve( !KU( ~skCe ) @ #vk.50 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 327.25s
+  
+  session_exist (exists-trace): verified (29 steps)
+  two_session_exist (exists-trace): verified (54 steps)
+  weak_agreement_C (all-traces): verified (8 steps)
+  weak_agreement_T (all-traces): verified (131 steps)
+  agreement_C (all-traces): verified (24 steps)
+  agreement_T (all-traces): verified (131 steps)
+  aliveness (all-traces): verified (132 steps)
+  session_uniqueness (all-traces): verified (37 steps)
+  consistency (all-traces): verified (47 steps)
+  key_secrecy (all-traces): verified (23 steps)
+  chip_hiding (all-traces): verified (4 steps)
+  nonRepudiation_terminal (exists-trace): verified (18 steps)
+  nonRepudiation_chip (exists-trace): verified (15 steps)
+  pfs (all-traces): verified (23 steps)
+
+==============================================================================
diff --git a/results/45991550.err.PFS_ALL_FastKemPQEAC_TAMARIN b/results/45991550.err.PFS_ALL_FastKemPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..e8b69d9cbe3f08bce37f20bdff07736861fc19fc
--- /dev/null
+++ b/results/45991550.err.PFS_ALL_FastKemPQEAC_TAMARIN
@@ -0,0 +1,28 @@
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991550.out.PFS_ALL_FastKemPQEAC_TAMARIN b/results/45991550.out.PFS_ALL_FastKemPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..77c0026374582d086bfa81a516a69a14d56b97ef
--- /dev/null
+++ b/results/45991550.out.PFS_ALL_FastKemPQEAC_TAMARIN
@@ -0,0 +1,5238 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory FastKemPQEAC begin
+
+// Function signature and definition of the equational theory E
+
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, decaps/2, encaps/2, fst/1, kdf/2, mac/2, pair/2, pk/1,
+           sdec/2, senc/2, sign/2, snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    decaps(encaps(k, pk(sk)), sk) = k,
+    fst(<x.1, x.2>) = x.1,
+    sdec(senc(x.1, x.2), x.2) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [ !Pk( $A, pk(~ltk), 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [ Out( <certT, '1', 't'> ), Out( ~iid ), TAInitT( <$T, ~iid> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [
+   In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~kTA ), Fr( ~r2 ),
+   Fr( ~skCe ), Fr( ~iid ), !Cert( $C, certC, 'chip' )
+   ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, encaps(~kTA, cert_pk(certT)), 
+         senc(<certC, ~r2, pk(~skCe)>, kdf(<'TENC', ~r1>, ~kTA)), '2', 'c'>
+   ),
+   Out( senc(~iid, kdf(<'TENC', ~r1>, ~kTA)) ),
+   TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~r2, ~skCe,
+                 kdf(<'TMAC', ~r1>, ~kTA), kdf(<'TCNF', ~r1>, ~kTA)
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [
+     In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~kTA ), Fr( ~r2 ),
+     Fr( ~skCe ), Fr( ~iid ), !Cert( $C, certC, 'chip' )
+     ]
+    --[ Eq( z.1, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, encaps(~kTA, z), 
+           senc(<certC, ~r2, pk(~skCe)>, kdf(<'TENC', ~r1>, ~kTA)), '2', 'c'>
+     ),
+     Out( senc(~iid, kdf(<'TENC', ~r1>, ~kTA)) ),
+     TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~r2, ~skCe,
+                   kdf(<'TMAC', ~r1>, ~kTA), kdf(<'TCNF', ~r1>, ~kTA)
+     )
+     ]
+    variants (modulo AC)
+    1. certT = certT.21
+       z     = cert_pk(certT.21)
+       z.1   = verify(cert_sig(certT.21),
+                      <cert_pk(certT.21), cert_id(certT.21), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(z.71, sign(<z.71, x.128, 'terminal'>, ca_sk), x.128)
+       z     = z.71
+       z.1   = true
+    
+    3. certT = cert(z.72, x.129, x.130)
+       z     = z.72
+       z.1   = verify(x.129, <z.72, x.130, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, cTA, cCA, '2', 'c'> ), Fr( ~k ), Fr( ~ke ),
+   TAInitT( <$T, iid> ), !Ltk( $T, ~skT, 'terminal' ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))),
+                  'chip'),
+      true
+  )
+  ]->
+   [
+   Out( <kdf(<'TCNF', r1>, decaps(cTA, ~skT)), 
+         encaps(~k,
+                cert_pk(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))))), 
+         mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))), 
+              fst(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT))))), 
+              encaps(~k,
+                     cert_pk(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))))), 
+              snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT))))), 
+              encaps(~ke, snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT))))))>,
+             kdf(<'TMAC', r1>, decaps(cTA, ~skT))), 
+         encaps(~ke, snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))))), 
+         '3', 't'>
+   ),
+   TAResponseT( <$T, iid>, id_c,
+                fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))),
+                fst(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT))))),
+                <~k, 
+                 encaps(~k, cert_pk(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT))))))
+                >,
+                <~ke, 
+                 encaps(~ke, snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT))))))>,
+                snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))))
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_RESPONSE_T:
+     [
+     In( <id_c, r1, cTA, cCA, '2', 'c'> ), Fr( ~k ), Fr( ~ke ),
+     TAInitT( <$T, iid> ), !Ltk( $T, ~skT, 'terminal' ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[ Eq( z.5, true ) ]->
+     [
+     Out( <kdf(<'TCNF', r1>, z), encaps(~k, z.1), 
+           mac(<'CA', certT, z.2, z.3, encaps(~k, z.1), z.4, encaps(~ke, z.4)>,
+               kdf(<'TMAC', r1>, z)), 
+           encaps(~ke, z.4), '3', 't'>
+     ),
+     TAResponseT( <$T, iid>, id_c, z.2, z.3, <~k, encaps(~k, z.1)>,
+                  <~ke, encaps(~ke, z.4)>, z.4
+     )
+     ]
+    variants (modulo AC)
+     1. ~skT  = ~skT.32
+        cCA   = cCA.33
+        cTA   = cTA.34
+        r1    = r1.38
+        z     = decaps(cTA.34, ~skT.32)
+        z.1   = cert_pk(fst(sdec(cCA.33,
+                                 kdf(<'TENC', r1.38>, decaps(cTA.34, ~skT.32)))))
+        z.2   = fst(sdec(cCA.33, kdf(<'TENC', r1.38>, decaps(cTA.34, ~skT.32))))
+        z.3   = fst(snd(sdec(cCA.33,
+                             kdf(<'TENC', r1.38>, decaps(cTA.34, ~skT.32)))))
+        z.4   = snd(snd(sdec(cCA.33,
+                             kdf(<'TENC', r1.38>, decaps(cTA.34, ~skT.32)))))
+        z.5   = verify(cert_sig(fst(sdec(cCA.33,
+                                         kdf(<'TENC', r1.38>, decaps(cTA.34, ~skT.32))))),
+                       <
+                        cert_pk(fst(sdec(cCA.33,
+                                         kdf(<'TENC', r1.38>, decaps(cTA.34, ~skT.32))))), 
+                        cert_id(fst(sdec(cCA.33,
+                                         kdf(<'TENC', r1.38>, decaps(cTA.34, ~skT.32))))), 
+                        'chip'>,
+                       pk(ca_sk))
+    
+     2. ~skT  = ~skT.37
+        cCA   = cCA.38
+        cTA   = encaps(z.48, pk(~skT.37))
+        r1    = r1.43
+        z     = z.48
+        z.1   = cert_pk(fst(sdec(cCA.38, kdf(<'TENC', r1.43>, z.48))))
+        z.2   = fst(sdec(cCA.38, kdf(<'TENC', r1.43>, z.48)))
+        z.3   = fst(snd(sdec(cCA.38, kdf(<'TENC', r1.43>, z.48))))
+        z.4   = snd(snd(sdec(cCA.38, kdf(<'TENC', r1.43>, z.48))))
+        z.5   = verify(cert_sig(fst(sdec(cCA.38, kdf(<'TENC', r1.43>, z.48)))),
+                       <cert_pk(fst(sdec(cCA.38, kdf(<'TENC', r1.43>, z.48)))), 
+                        cert_id(fst(sdec(cCA.38, kdf(<'TENC', r1.43>, z.48)))), 'chip'>,
+                       pk(ca_sk))
+    
+     3. ~skT  = ~skT.42
+        cCA   = senc(<z.56, z.57, z.58>, kdf(<'TENC', r1.48>, z.53))
+        cTA   = encaps(z.53, pk(~skT.42))
+        r1    = r1.48
+        z     = z.53
+        z.1   = cert_pk(z.56)
+        z.2   = z.56
+        z.3   = z.57
+        z.4   = z.58
+        z.5   = verify(cert_sig(z.56), <cert_pk(z.56), cert_id(z.56), 'chip'>,
+                       pk(ca_sk))
+    
+     4. ~skT  = ~skT.42
+        cCA   = senc(<z.56, z.57, z.58>,
+                     kdf(<'TENC', r1.48>, decaps(cTA.44, ~skT.42)))
+        cTA   = cTA.44
+        r1    = r1.48
+        z     = decaps(cTA.44, ~skT.42)
+        z.1   = cert_pk(z.56)
+        z.2   = z.56
+        z.3   = z.57
+        z.4   = z.58
+        z.5   = verify(cert_sig(z.56), <cert_pk(z.56), cert_id(z.56), 'chip'>,
+                       pk(ca_sk))
+    
+     5. ~skT  = ~skT.174
+        cCA   = senc(x.343, kdf(<'TENC', r1.180>, z.185))
+        cTA   = encaps(z.185, pk(~skT.174))
+        r1    = r1.180
+        z     = z.185
+        z.1   = cert_pk(fst(x.343))
+        z.2   = fst(x.343)
+        z.3   = fst(snd(x.343))
+        z.4   = snd(snd(x.343))
+        z.5   = verify(cert_sig(fst(x.343)),
+                       <cert_pk(fst(x.343)), cert_id(fst(x.343)), 'chip'>, pk(ca_sk))
+    
+     6. ~skT  = ~skT.174
+        cCA   = senc(x.343, kdf(<'TENC', r1.180>, decaps(cTA.176, ~skT.174)))
+        cTA   = cTA.176
+        r1    = r1.180
+        z     = decaps(cTA.176, ~skT.174)
+        z.1   = cert_pk(fst(x.343))
+        z.2   = fst(x.343)
+        z.3   = fst(snd(x.343))
+        z.4   = snd(snd(x.343))
+        z.5   = verify(cert_sig(fst(x.343)),
+                       <cert_pk(fst(x.343)), cert_id(fst(x.343)), 'chip'>, pk(ca_sk))
+    
+     7. ~skT  = ~skT.175
+        cCA   = senc(<z.189, x.345>, kdf(<'TENC', r1.181>, z.186))
+        cTA   = encaps(z.186, pk(~skT.175))
+        r1    = r1.181
+        z     = z.186
+        z.1   = cert_pk(z.189)
+        z.2   = z.189
+        z.3   = fst(x.345)
+        z.4   = snd(x.345)
+        z.5   = verify(cert_sig(z.189), <cert_pk(z.189), cert_id(z.189), 'chip'>,
+                       pk(ca_sk))
+    
+     8. ~skT  = ~skT.175
+        cCA   = senc(<z.189, x.345>,
+                     kdf(<'TENC', r1.181>, decaps(cTA.177, ~skT.175)))
+        cTA   = cTA.177
+        r1    = r1.181
+        z     = decaps(cTA.177, ~skT.175)
+        z.1   = cert_pk(z.189)
+        z.2   = z.189
+        z.3   = fst(x.345)
+        z.4   = snd(x.345)
+        z.5   = verify(cert_sig(z.189), <cert_pk(z.189), cert_id(z.189), 'chip'>,
+                       pk(ca_sk))
+    
+     9. ~skT  = ~skT.175
+        cCA   = senc(<cert(z.187, sign(<z.187, x.345, 'chip'>, ca_sk), x.345), 
+                      z.190, z.191>,
+                     kdf(<'TENC', r1.181>, z.186))
+        cTA   = encaps(z.186, pk(~skT.175))
+        r1    = r1.181
+        z     = z.186
+        z.1   = z.187
+        z.2   = cert(z.187, sign(<z.187, x.345, 'chip'>, ca_sk), x.345)
+        z.3   = z.190
+        z.4   = z.191
+        z.5   = true
+    
+    10. ~skT  = ~skT.175
+        cCA   = senc(<cert(z.187, sign(<z.187, x.345, 'chip'>, ca_sk), x.345), 
+                      z.190, z.191>,
+                     kdf(<'TENC', r1.181>, decaps(cTA.177, ~skT.175)))
+        cTA   = cTA.177
+        r1    = r1.181
+        z     = decaps(cTA.177, ~skT.175)
+        z.1   = z.187
+        z.2   = cert(z.187, sign(<z.187, x.345, 'chip'>, ca_sk), x.345)
+        z.3   = z.190
+        z.4   = z.191
+        z.5   = true
+    
+    11. ~skT  = ~skT.176
+        cCA   = senc(<cert(z.188, x.346, x.347), z.191, z.192>,
+                     kdf(<'TENC', r1.182>, z.187))
+        cTA   = encaps(z.187, pk(~skT.176))
+        r1    = r1.182
+        z     = z.187
+        z.1   = z.188
+        z.2   = cert(z.188, x.346, x.347)
+        z.3   = z.191
+        z.4   = z.192
+        z.5   = verify(x.346, <z.188, x.347, 'chip'>, pk(ca_sk))
+    
+    12. ~skT  = ~skT.176
+        cCA   = senc(<cert(z.188, x.346, x.347), z.191, z.192>,
+                     kdf(<'TENC', r1.182>, decaps(cTA.178, ~skT.176)))
+        cTA   = cTA.178
+        r1    = r1.182
+        z     = decaps(cTA.178, ~skT.176)
+        z.1   = z.188
+        z.2   = cert(z.188, x.346, x.347)
+        z.3   = z.191
+        z.4   = z.192
+        z.5   = verify(x.346, <z.188, x.347, 'chip'>, pk(ca_sk))
+    
+    13. ~skT  = ~skT.176
+        cCA   = senc(<cert(z.188, sign(<z.188, x.346, 'chip'>, ca_sk), x.346), 
+                      x.347>,
+                     kdf(<'TENC', r1.182>, z.187))
+        cTA   = encaps(z.187, pk(~skT.176))
+        r1    = r1.182
+        z     = z.187
+        z.1   = z.188
+        z.2   = cert(z.188, sign(<z.188, x.346, 'chip'>, ca_sk), x.346)
+        z.3   = fst(x.347)
+        z.4   = snd(x.347)
+        z.5   = true
+    
+    14. ~skT  = ~skT.176
+        cCA   = senc(<cert(z.188, sign(<z.188, x.346, 'chip'>, ca_sk), x.346), 
+                      x.347>,
+                     kdf(<'TENC', r1.182>, decaps(cTA.178, ~skT.176)))
+        cTA   = cTA.178
+        r1    = r1.182
+        z     = decaps(cTA.178, ~skT.176)
+        z.1   = z.188
+        z.2   = cert(z.188, sign(<z.188, x.346, 'chip'>, ca_sk), x.346)
+        z.3   = fst(x.347)
+        z.4   = snd(x.347)
+        z.5   = true
+    
+    15. ~skT  = ~skT.177
+        cCA   = senc(<cert(z.189, x.347, x.348), x.349>,
+                     kdf(<'TENC', r1.183>, z.188))
+        cTA   = encaps(z.188, pk(~skT.177))
+        r1    = r1.183
+        z     = z.188
+        z.1   = z.189
+        z.2   = cert(z.189, x.347, x.348)
+        z.3   = fst(x.349)
+        z.4   = snd(x.349)
+        z.5   = verify(x.347, <z.189, x.348, 'chip'>, pk(ca_sk))
+    
+    16. ~skT  = ~skT.177
+        cCA   = senc(<cert(z.189, x.347, x.348), x.349>,
+                     kdf(<'TENC', r1.183>, decaps(cTA.179, ~skT.177)))
+        cTA   = cTA.179
+        r1    = r1.183
+        z     = decaps(cTA.179, ~skT.177)
+        z.1   = z.189
+        z.2   = cert(z.189, x.347, x.348)
+        z.3   = fst(x.349)
+        z.4   = snd(x.349)
+        z.5   = verify(x.347, <z.189, x.348, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_COMPLETE_C:
+   [
+   In( <kTCNF_T, cip, s, cipe, '3', 't'> ),
+   TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF ),
+   !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( kTCNF_T, kTCNF ),
+  Eq( s, mac(<'CA', certT, certC, r2, cip, pk(skCe), cipe>, kTMAC) ),
+  CompletedTA( $C, iid, cert_id(certT) ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>,
+                 <decaps(cip, ~skC), decaps(cipe, skCe)>),
+             <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', cert_id(certT)
+  ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>,
+                 <decaps(cip, ~skC), decaps(cipe, skCe)>),
+             <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <
+         kdf(<'CNF', certT, certC, r2, cip, pk(skCe), cipe>,
+             <decaps(cip, ~skC), decaps(cipe, skCe)>), 
+         '4', 'c'>
+   ),
+   TACompleteC( <$C, iid>,
+                kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>,
+                    <decaps(cip, ~skC), decaps(cipe, skCe)>)
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [
+     In( <kTCNF_T, cip, s, cipe, '3', 't'> ),
+     TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF ),
+     !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( kTCNF_T, kTCNF ),
+    Eq( s, mac(<'CA', certT, certC, r2, cip, pk(skCe), cipe>, kTMAC) ),
+    CompletedTA( $C, iid, z.2 ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>),
+               <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', z.2
+    ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>),
+               <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', z.2
+    )
+    ]->
+     [
+     Out( <kdf(<'CNF', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>), 
+           '4', 'c'>
+     ),
+     TACompleteC( <$C, iid>,
+                  kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>)
+     )
+     ]
+    variants (modulo AC)
+    1. ~skC  = ~skC.41
+       certT = certT.43
+       cip   = cip.44
+       cipe  = cipe.45
+       skCe  = skCe.54
+       z     = decaps(cip.44, ~skC.41)
+       z.1   = decaps(cipe.45, skCe.54)
+       z.2   = cert_id(certT.43)
+    
+    2. ~skC  = ~skC.46
+       certT = certT.48
+       cip   = encaps(z.64, pk(~skC.46))
+       cipe  = cipe.50
+       skCe  = skCe.59
+       z     = z.64
+       z.1   = decaps(cipe.50, skCe.59)
+       z.2   = cert_id(certT.48)
+    
+    3. ~skC  = ~skC.47
+       certT = certT.49
+       cip   = cip.50
+       cipe  = encaps(z.66, pk(skCe.60))
+       skCe  = skCe.60
+       z     = decaps(cip.50, ~skC.47)
+       z.1   = z.66
+       z.2   = cert_id(certT.49)
+    
+    4. ~skC  = ~skC.47
+       certT = certT.49
+       cip   = encaps(z.65, pk(~skC.47))
+       cipe  = encaps(z.66, pk(skCe.60))
+       skCe  = skCe.60
+       z     = z.65
+       z.1   = z.66
+       z.2   = cert_id(certT.49)
+    
+    5. ~skC  = ~skC.204
+       certT = cert(x.404, x.405, z.228)
+       cip   = cip.207
+       cipe  = cipe.208
+       skCe  = skCe.217
+       z     = decaps(cip.207, ~skC.204)
+       z.1   = decaps(cipe.208, skCe.217)
+       z.2   = z.228
+    
+    6. ~skC  = ~skC.204
+       certT = cert(x.404, x.405, z.228)
+       cip   = cip.207
+       cipe  = encaps(z.223, pk(skCe.217))
+       skCe  = skCe.217
+       z     = decaps(cip.207, ~skC.204)
+       z.1   = z.223
+       z.2   = z.228
+    
+    7. ~skC  = ~skC.206
+       certT = cert(x.408, x.409, z.230)
+       cip   = encaps(z.224, pk(~skC.206))
+       cipe  = cipe.210
+       skCe  = skCe.219
+       z     = z.224
+       z.1   = decaps(cipe.210, skCe.219)
+       z.2   = z.230
+    
+    8. ~skC  = ~skC.206
+       certT = cert(x.408, x.409, z.230)
+       cip   = encaps(z.224, pk(~skC.206))
+       cipe  = encaps(z.225, pk(skCe.219))
+       skCe  = skCe.219
+       z     = z.224
+       z.1   = z.225
+       z.2   = z.230
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <kCNF_C, '4', 'c'> ),
+   TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>), kCNF_C ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>),
+             <certT, certC, r2, cip, pkCe, cipe>, $T, 'terminal', cert_id(certC)
+  ),
+  Finished( <certT, certC, r2, cip, pkCe, cipe> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T,
+              kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+   ),
+   !SessionReveal( <certT, certC, r2, cip, pkCe, cipe>,
+                   kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <kCNF_C, '4', 'c'> ),
+     TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>), kCNF_C ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>),
+               <certT, certC, r2, cip, pkCe, cipe>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, r2, cip, pkCe, cipe> )
+    ]->
+     [
+     CAFinishT( z, $T,
+                kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+     ),
+     !SessionReveal( <certT, certC, r2, cip, pkCe, cipe>,
+                     kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.18
+       z     = cert_id(certC.18)
+    
+    2. certC = cert(x.44, x.45, z.31)
+       z     = z.31
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, cipe, kCNF> ),
+   In( <kTA, skCe> ), !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(fst(sdec(cCA, kdf(<'TENC', r1>, kTA)))) ),
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 'chip'), true ),
+  Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( kTCNF, kdf(<'TCNF', r1>, kTA) ),
+  Eq( s,
+      mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, kTA))), cip, pk(skCe), cipe>,
+          kdf(<'TMAC', r1>, kTA))
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, kTA))), cip, pk(skCe), cipe>,
+          <decaps(cip, skC), decaps(cipe, skCe)>)
+  ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, cipe, kCNF> ),
+     In( <kTA, skCe> ), !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( z.1, true ), Eq( z.2, true ),
+    Eq( kTCNF, kdf(<'TCNF', r1>, kTA) ),
+    Eq( s,
+        mac(<'CA', certT, z.3, z.4, cip, pk(skCe), cipe>, kdf(<'TMAC', r1>, kTA))
+    ),
+    Eq( kCNF, kdf(<'CNF', certT, z.3, z.4, cip, pk(skCe), cipe>, <z.5, z.6>)
+    ),
+    ValidTrans( C, 'chip', z.7 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. cCA   = cCA.40
+        certT = certT.42
+        cip   = cip.43
+        cipe  = cipe.44
+        kTA   = kTA.46
+        r1    = r1.48
+        skC   = skC.50
+        skCe  = skCe.51
+        z     = cert_id(fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))),
+                       <cert_pk(fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))), 
+                        cert_id(fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.42),
+                       <cert_pk(certT.42), cert_id(certT.42), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))
+        z.4   = snd(sdec(cCA.40, kdf(<'TENC', r1.48>, kTA.46)))
+        z.5   = decaps(cip.43, skC.50)
+        z.6   = decaps(cipe.44, skCe.51)
+        z.7   = cert_id(certT.42)
+    
+     2. cCA   = cCA.51
+        certT = certT.53
+        cip   = encaps(z.73, pk(skC.61))
+        cipe  = cipe.55
+        kTA   = kTA.57
+        r1    = r1.59
+        skC   = skC.61
+        skCe  = skCe.62
+        z     = cert_id(fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))),
+                       <cert_pk(fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))), 
+                        cert_id(fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.53),
+                       <cert_pk(certT.53), cert_id(certT.53), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))
+        z.4   = snd(sdec(cCA.51, kdf(<'TENC', r1.59>, kTA.57)))
+        z.5   = z.73
+        z.6   = decaps(cipe.55, skCe.62)
+        z.7   = cert_id(certT.53)
+    
+     3. cCA   = cCA.52
+        certT = certT.54
+        cip   = cip.55
+        cipe  = encaps(z.75, pk(skCe.63))
+        kTA   = kTA.58
+        r1    = r1.60
+        skC   = skC.62
+        skCe  = skCe.63
+        z     = cert_id(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))),
+                       <cert_pk(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))), 
+                        cert_id(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.54),
+                       <cert_pk(certT.54), cert_id(certT.54), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))
+        z.4   = snd(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))
+        z.5   = decaps(cip.55, skC.62)
+        z.6   = z.75
+        z.7   = cert_id(certT.54)
+    
+     4. cCA   = cCA.52
+        certT = certT.54
+        cip   = encaps(z.74, pk(skC.62))
+        cipe  = encaps(z.75, pk(skCe.63))
+        kTA   = kTA.58
+        r1    = r1.60
+        skC   = skC.62
+        skCe  = skCe.63
+        z     = cert_id(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))),
+                       <cert_pk(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))), 
+                        cert_id(fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.54),
+                       <cert_pk(certT.54), cert_id(certT.54), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))
+        z.4   = snd(sdec(cCA.52, kdf(<'TENC', r1.60>, kTA.58)))
+        z.5   = z.74
+        z.6   = z.75
+        z.7   = cert_id(certT.54)
+    
+     5. cCA   = cCA.129
+        certT = cert(x.254, sign(<x.254, z.153, 'terminal'>, ca_sk), z.153)
+        cip   = cip.132
+        cipe  = cipe.133
+        kTA   = kTA.135
+        r1    = r1.137
+        skC   = skC.139
+        skCe  = skCe.140
+        z     = cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.137>, kTA.135)))),
+                       <cert_pk(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 
+                        cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.4   = snd(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.5   = decaps(cip.132, skC.139)
+        z.6   = decaps(cipe.133, skCe.140)
+        z.7   = z.153
+    
+     6. cCA   = cCA.129
+        certT = cert(x.254, sign(<x.254, z.153, 'terminal'>, ca_sk), z.153)
+        cip   = cip.132
+        cipe  = encaps(z.152, pk(skCe.140))
+        kTA   = kTA.135
+        r1    = r1.137
+        skC   = skC.139
+        skCe  = skCe.140
+        z     = cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.137>, kTA.135)))),
+                       <cert_pk(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 
+                        cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.4   = snd(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.5   = decaps(cip.132, skC.139)
+        z.6   = z.152
+        z.7   = z.153
+    
+     7. cCA   = cCA.129
+        certT = cert(x.254, sign(<x.254, z.153, 'terminal'>, ca_sk), z.153)
+        cip   = encaps(z.151, pk(skC.139))
+        cipe  = cipe.133
+        kTA   = kTA.135
+        r1    = r1.137
+        skC   = skC.139
+        skCe  = skCe.140
+        z     = cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.137>, kTA.135)))),
+                       <cert_pk(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 
+                        cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.4   = snd(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.5   = z.151
+        z.6   = decaps(cipe.133, skCe.140)
+        z.7   = z.153
+    
+     8. cCA   = cCA.129
+        certT = cert(x.254, sign(<x.254, z.153, 'terminal'>, ca_sk), z.153)
+        cip   = encaps(z.151, pk(skC.139))
+        cipe  = encaps(z.152, pk(skCe.140))
+        kTA   = kTA.135
+        r1    = r1.137
+        skC   = skC.139
+        skCe  = skCe.140
+        z     = cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.137>, kTA.135)))),
+                       <cert_pk(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 
+                        cert_id(fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.4   = snd(sdec(cCA.129, kdf(<'TENC', r1.137>, kTA.135)))
+        z.5   = z.151
+        z.6   = z.152
+        z.7   = z.153
+    
+     9. cCA   = cCA.130
+        certT = cert(x.255, x.256, z.154)
+        cip   = cip.133
+        cipe  = cipe.134
+        kTA   = kTA.136
+        r1    = r1.138
+        skC   = skC.140
+        skCe  = skCe.141
+        z     = cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.138>, kTA.136)))),
+                       <cert_pk(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 
+                        cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.154, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.4   = snd(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.5   = decaps(cip.133, skC.140)
+        z.6   = decaps(cipe.134, skCe.141)
+        z.7   = z.154
+    
+    10. cCA   = cCA.130
+        certT = cert(x.255, x.256, z.154)
+        cip   = cip.133
+        cipe  = encaps(z.153, pk(skCe.141))
+        kTA   = kTA.136
+        r1    = r1.138
+        skC   = skC.140
+        skCe  = skCe.141
+        z     = cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.138>, kTA.136)))),
+                       <cert_pk(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 
+                        cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.154, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.4   = snd(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.5   = decaps(cip.133, skC.140)
+        z.6   = z.153
+        z.7   = z.154
+    
+    11. cCA   = cCA.130
+        certT = cert(x.255, x.256, z.154)
+        cip   = encaps(z.152, pk(skC.140))
+        cipe  = cipe.134
+        kTA   = kTA.136
+        r1    = r1.138
+        skC   = skC.140
+        skCe  = skCe.141
+        z     = cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.138>, kTA.136)))),
+                       <cert_pk(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 
+                        cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.154, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.4   = snd(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.5   = z.152
+        z.6   = decaps(cipe.134, skCe.141)
+        z.7   = z.154
+    
+    12. cCA   = cCA.130
+        certT = cert(x.255, x.256, z.154)
+        cip   = encaps(z.152, pk(skC.140))
+        cipe  = encaps(z.153, pk(skCe.141))
+        kTA   = kTA.136
+        r1    = r1.138
+        skC   = skC.140
+        skCe  = skCe.141
+        z     = cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.138>, kTA.136)))),
+                       <cert_pk(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 
+                        cert_id(fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.154, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.4   = snd(sdec(cCA.130, kdf(<'TENC', r1.138>, kTA.136)))
+        z.5   = z.152
+        z.6   = z.153
+        z.7   = z.154
+    
+    13. cCA   = senc(x.204, kdf(<'TENC', r1.111>, kTA.109))
+        certT = cert(x.208, sign(<x.208, z.127, 'terminal'>, ca_sk), z.127)
+        cip   = encaps(z.125, pk(skC.113))
+        cipe  = encaps(z.126, pk(skCe.114))
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        skCe  = skCe.114
+        z     = cert_id(fst(x.204))
+        z.1   = verify(cert_sig(fst(x.204)),
+                       <cert_pk(fst(x.204)), cert_id(fst(x.204)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.204)
+        z.4   = snd(x.204)
+        z.5   = z.125
+        z.6   = z.126
+        z.7   = z.127
+    
+    14. cCA   = senc(x.205, kdf(<'TENC', r1.112>, kTA.110))
+        certT = cert(x.209, x.210, z.128)
+        cip   = encaps(z.126, pk(skC.114))
+        cipe  = encaps(z.127, pk(skCe.115))
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        skCe  = skCe.115
+        z     = cert_id(fst(x.205))
+        z.1   = verify(cert_sig(fst(x.205)),
+                       <cert_pk(fst(x.205)), cert_id(fst(x.205)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.210, <x.209, z.128, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.205)
+        z.4   = snd(x.205)
+        z.5   = z.126
+        z.6   = z.127
+        z.7   = z.128
+    
+    15. cCA   = senc(x.222, kdf(<'TENC', r1.121>, kTA.119))
+        certT = cert(x.226, sign(<x.226, z.137, 'terminal'>, ca_sk), z.137)
+        cip   = encaps(z.135, pk(skC.123))
+        cipe  = cipe.117
+        kTA   = kTA.119
+        r1    = r1.121
+        skC   = skC.123
+        skCe  = skCe.124
+        z     = cert_id(fst(x.222))
+        z.1   = verify(cert_sig(fst(x.222)),
+                       <cert_pk(fst(x.222)), cert_id(fst(x.222)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.222)
+        z.4   = snd(x.222)
+        z.5   = z.135
+        z.6   = decaps(cipe.117, skCe.124)
+        z.7   = z.137
+    
+    16. cCA   = senc(x.223, kdf(<'TENC', r1.122>, kTA.120))
+        certT = cert(x.227, x.228, z.138)
+        cip   = encaps(z.136, pk(skC.124))
+        cipe  = cipe.118
+        kTA   = kTA.120
+        r1    = r1.122
+        skC   = skC.124
+        skCe  = skCe.125
+        z     = cert_id(fst(x.223))
+        z.1   = verify(cert_sig(fst(x.223)),
+                       <cert_pk(fst(x.223)), cert_id(fst(x.223)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.228, <x.227, z.138, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.223)
+        z.4   = snd(x.223)
+        z.5   = z.136
+        z.6   = decaps(cipe.118, skCe.125)
+        z.7   = z.138
+    
+    17. cCA   = senc(x.231, kdf(<'TENC', r1.126>, kTA.124))
+        certT = cert(x.235, sign(<x.235, z.142, 'terminal'>, ca_sk), z.142)
+        cip   = cip.121
+        cipe  = cipe.122
+        kTA   = kTA.124
+        r1    = r1.126
+        skC   = skC.128
+        skCe  = skCe.129
+        z     = cert_id(fst(x.231))
+        z.1   = verify(cert_sig(fst(x.231)),
+                       <cert_pk(fst(x.231)), cert_id(fst(x.231)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.231)
+        z.4   = snd(x.231)
+        z.5   = decaps(cip.121, skC.128)
+        z.6   = decaps(cipe.122, skCe.129)
+        z.7   = z.142
+    
+    18. cCA   = senc(x.231, kdf(<'TENC', r1.126>, kTA.124))
+        certT = cert(x.235, sign(<x.235, z.142, 'terminal'>, ca_sk), z.142)
+        cip   = cip.121
+        cipe  = encaps(z.141, pk(skCe.129))
+        kTA   = kTA.124
+        r1    = r1.126
+        skC   = skC.128
+        skCe  = skCe.129
+        z     = cert_id(fst(x.231))
+        z.1   = verify(cert_sig(fst(x.231)),
+                       <cert_pk(fst(x.231)), cert_id(fst(x.231)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.231)
+        z.4   = snd(x.231)
+        z.5   = decaps(cip.121, skC.128)
+        z.6   = z.141
+        z.7   = z.142
+    
+    19. cCA   = senc(x.232, kdf(<'TENC', r1.127>, kTA.125))
+        certT = cert(x.236, x.237, z.143)
+        cip   = cip.122
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.232))
+        z.1   = verify(cert_sig(fst(x.232)),
+                       <cert_pk(fst(x.232)), cert_id(fst(x.232)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.237, <x.236, z.143, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.232)
+        z.4   = snd(x.232)
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = z.143
+    
+    20. cCA   = senc(x.232, kdf(<'TENC', r1.127>, kTA.125))
+        certT = cert(x.236, x.237, z.143)
+        cip   = cip.122
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.232))
+        z.1   = verify(cert_sig(fst(x.232)),
+                       <cert_pk(fst(x.232)), cert_id(fst(x.232)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.237, <x.236, z.143, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.232)
+        z.4   = snd(x.232)
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = z.142
+        z.7   = z.143
+    
+    21. cCA   = senc(x.236, kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = cip.122
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.236))
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.236)
+        z.4   = snd(x.236)
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = cert_id(certT.121)
+    
+    22. cCA   = senc(x.236, kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = cip.122
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.236))
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.236)
+        z.4   = snd(x.236)
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = z.142
+        z.7   = cert_id(certT.121)
+    
+    23. cCA   = senc(x.236, kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = encaps(z.141, pk(skC.129))
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.236))
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.236)
+        z.4   = snd(x.236)
+        z.5   = z.141
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = cert_id(certT.121)
+    
+    24. cCA   = senc(x.236, kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = encaps(z.141, pk(skC.129))
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(fst(x.236))
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.236)
+        z.4   = snd(x.236)
+        z.5   = z.141
+        z.6   = z.142
+        z.7   = cert_id(certT.121)
+    
+    25. cCA   = senc(<z.62, z.63>, kdf(<'TENC', r1.52>, kTA.50))
+        certT = certT.46
+        cip   = cip.47
+        cipe  = cipe.48
+        kTA   = kTA.50
+        r1    = r1.52
+        skC   = skC.54
+        skCe  = skCe.55
+        z     = cert_id(z.62)
+        z.1   = verify(cert_sig(z.62), <cert_pk(z.62), cert_id(z.62), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.46),
+                       <cert_pk(certT.46), cert_id(certT.46), 'terminal'>, pk(ca_sk))
+        z.3   = z.62
+        z.4   = z.63
+        z.5   = decaps(cip.47, skC.54)
+        z.6   = decaps(cipe.48, skCe.55)
+        z.7   = cert_id(certT.46)
+    
+    26. cCA   = senc(<z.65, z.66>, kdf(<'TENC', r1.55>, kTA.53))
+        certT = certT.49
+        cip   = encaps(z.69, pk(skC.57))
+        cipe  = cipe.51
+        kTA   = kTA.53
+        r1    = r1.55
+        skC   = skC.57
+        skCe  = skCe.58
+        z     = cert_id(z.65)
+        z.1   = verify(cert_sig(z.65), <cert_pk(z.65), cert_id(z.65), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.49),
+                       <cert_pk(certT.49), cert_id(certT.49), 'terminal'>, pk(ca_sk))
+        z.3   = z.65
+        z.4   = z.66
+        z.5   = z.69
+        z.6   = decaps(cipe.51, skCe.58)
+        z.7   = cert_id(certT.49)
+    
+    27. cCA   = senc(<z.66, z.67>, kdf(<'TENC', r1.56>, kTA.54))
+        certT = certT.50
+        cip   = cip.51
+        cipe  = encaps(z.71, pk(skCe.59))
+        kTA   = kTA.54
+        r1    = r1.56
+        skC   = skC.58
+        skCe  = skCe.59
+        z     = cert_id(z.66)
+        z.1   = verify(cert_sig(z.66), <cert_pk(z.66), cert_id(z.66), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.50),
+                       <cert_pk(certT.50), cert_id(certT.50), 'terminal'>, pk(ca_sk))
+        z.3   = z.66
+        z.4   = z.67
+        z.5   = decaps(cip.51, skC.58)
+        z.6   = z.71
+        z.7   = cert_id(certT.50)
+    
+    28. cCA   = senc(<z.66, z.67>, kdf(<'TENC', r1.56>, kTA.54))
+        certT = certT.50
+        cip   = encaps(z.70, pk(skC.58))
+        cipe  = encaps(z.71, pk(skCe.59))
+        kTA   = kTA.54
+        r1    = r1.56
+        skC   = skC.58
+        skCe  = skCe.59
+        z     = cert_id(z.66)
+        z.1   = verify(cert_sig(z.66), <cert_pk(z.66), cert_id(z.66), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.50),
+                       <cert_pk(certT.50), cert_id(certT.50), 'terminal'>, pk(ca_sk))
+        z.3   = z.66
+        z.4   = z.67
+        z.5   = z.70
+        z.6   = z.71
+        z.7   = cert_id(certT.50)
+    
+    29. cCA   = senc(<z.122, z.123>, kdf(<'TENC', r1.112>, kTA.110))
+        certT = cert(x.210, sign(<x.210, z.128, 'terminal'>, ca_sk), z.128)
+        cip   = encaps(z.126, pk(skC.114))
+        cipe  = encaps(z.127, pk(skCe.115))
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        skCe  = skCe.115
+        z     = cert_id(z.122)
+        z.1   = verify(cert_sig(z.122), <cert_pk(z.122), cert_id(z.122), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.122
+        z.4   = z.123
+        z.5   = z.126
+        z.6   = z.127
+        z.7   = z.128
+    
+    30. cCA   = senc(<z.123, z.124>, kdf(<'TENC', r1.113>, kTA.111))
+        certT = cert(x.211, x.212, z.129)
+        cip   = encaps(z.127, pk(skC.115))
+        cipe  = encaps(z.128, pk(skCe.116))
+        kTA   = kTA.111
+        r1    = r1.113
+        skC   = skC.115
+        skCe  = skCe.116
+        z     = cert_id(z.123)
+        z.1   = verify(cert_sig(z.123), <cert_pk(z.123), cert_id(z.123), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.212, <x.211, z.129, 'terminal'>, pk(ca_sk))
+        z.3   = z.123
+        z.4   = z.124
+        z.5   = z.127
+        z.6   = z.128
+        z.7   = z.129
+    
+    31. cCA   = senc(<z.132, z.133>, kdf(<'TENC', r1.122>, kTA.120))
+        certT = cert(x.228, sign(<x.228, z.138, 'terminal'>, ca_sk), z.138)
+        cip   = encaps(z.136, pk(skC.124))
+        cipe  = cipe.118
+        kTA   = kTA.120
+        r1    = r1.122
+        skC   = skC.124
+        skCe  = skCe.125
+        z     = cert_id(z.132)
+        z.1   = verify(cert_sig(z.132), <cert_pk(z.132), cert_id(z.132), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.132
+        z.4   = z.133
+        z.5   = z.136
+        z.6   = decaps(cipe.118, skCe.125)
+        z.7   = z.138
+    
+    32. cCA   = senc(<z.133, z.134>, kdf(<'TENC', r1.123>, kTA.121))
+        certT = cert(x.229, x.230, z.139)
+        cip   = encaps(z.137, pk(skC.125))
+        cipe  = cipe.119
+        kTA   = kTA.121
+        r1    = r1.123
+        skC   = skC.125
+        skCe  = skCe.126
+        z     = cert_id(z.133)
+        z.1   = verify(cert_sig(z.133), <cert_pk(z.133), cert_id(z.133), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.230, <x.229, z.139, 'terminal'>, pk(ca_sk))
+        z.3   = z.133
+        z.4   = z.134
+        z.5   = z.137
+        z.6   = decaps(cipe.119, skCe.126)
+        z.7   = z.139
+    
+    33. cCA   = senc(<z.137, z.138>, kdf(<'TENC', r1.127>, kTA.125))
+        certT = cert(x.237, sign(<x.237, z.143, 'terminal'>, ca_sk), z.143)
+        cip   = cip.122
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(z.137)
+        z.1   = verify(cert_sig(z.137), <cert_pk(z.137), cert_id(z.137), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.137
+        z.4   = z.138
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = z.143
+    
+    34. cCA   = senc(<z.137, z.138>, kdf(<'TENC', r1.127>, kTA.125))
+        certT = cert(x.237, sign(<x.237, z.143, 'terminal'>, ca_sk), z.143)
+        cip   = cip.122
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = cert_id(z.137)
+        z.1   = verify(cert_sig(z.137), <cert_pk(z.137), cert_id(z.137), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.137
+        z.4   = z.138
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = z.142
+        z.7   = z.143
+    
+    35. cCA   = senc(<z.138, z.139>, kdf(<'TENC', r1.128>, kTA.126))
+        certT = cert(x.238, x.239, z.144)
+        cip   = cip.123
+        cipe  = cipe.124
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = cert_id(z.138)
+        z.1   = verify(cert_sig(z.138), <cert_pk(z.138), cert_id(z.138), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.239, <x.238, z.144, 'terminal'>, pk(ca_sk))
+        z.3   = z.138
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = decaps(cipe.124, skCe.131)
+        z.7   = z.144
+    
+    36. cCA   = senc(<z.138, z.139>, kdf(<'TENC', r1.128>, kTA.126))
+        certT = cert(x.238, x.239, z.144)
+        cip   = cip.123
+        cipe  = encaps(z.143, pk(skCe.131))
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = cert_id(z.138)
+        z.1   = verify(cert_sig(z.138), <cert_pk(z.138), cert_id(z.138), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.239, <x.238, z.144, 'terminal'>, pk(ca_sk))
+        z.3   = z.138
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = z.143
+        z.7   = z.144
+    
+    37. cCA   = senc(<
+                      cert(x.206, sign(<x.206, z.118, 'chip'>, ca_sk), z.118), z.124>,
+                     kdf(<'TENC', r1.113>, kTA.111))
+        certT = cert(x.212, sign(<x.212, z.129, 'terminal'>, ca_sk), z.129)
+        cip   = encaps(z.127, pk(skC.115))
+        cipe  = encaps(z.128, pk(skCe.116))
+        kTA   = kTA.111
+        r1    = r1.113
+        skC   = skC.115
+        skCe  = skCe.116
+        z     = z.118
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.206, sign(<x.206, z.118, 'chip'>, ca_sk), z.118)
+        z.4   = z.124
+        z.5   = z.127
+        z.6   = z.128
+        z.7   = z.129
+    
+    38. cCA   = senc(<cert(x.207, x.208, z.119), z.125>,
+                     kdf(<'TENC', r1.114>, kTA.112))
+        certT = cert(x.214, sign(<x.214, z.130, 'terminal'>, ca_sk), z.130)
+        cip   = encaps(z.128, pk(skC.116))
+        cipe  = encaps(z.129, pk(skCe.117))
+        kTA   = kTA.112
+        r1    = r1.114
+        skC   = skC.116
+        skCe  = skCe.117
+        z     = z.119
+        z.1   = verify(x.208, <x.207, z.119, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.207, x.208, z.119)
+        z.4   = z.125
+        z.5   = z.128
+        z.6   = z.129
+        z.7   = z.130
+    
+    39. cCA   = senc(<
+                      cert(x.207, sign(<x.207, z.119, 'chip'>, ca_sk), z.119), z.125>,
+                     kdf(<'TENC', r1.114>, kTA.112))
+        certT = cert(x.213, x.214, z.130)
+        cip   = encaps(z.128, pk(skC.116))
+        cipe  = encaps(z.129, pk(skCe.117))
+        kTA   = kTA.112
+        r1    = r1.114
+        skC   = skC.116
+        skCe  = skCe.117
+        z     = z.119
+        z.1   = true
+        z.2   = verify(x.214, <x.213, z.130, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.207, sign(<x.207, z.119, 'chip'>, ca_sk), z.119)
+        z.4   = z.125
+        z.5   = z.128
+        z.6   = z.129
+        z.7   = z.130
+    
+    40. cCA   = senc(<cert(x.208, x.209, z.120), z.126>,
+                     kdf(<'TENC', r1.115>, kTA.113))
+        certT = cert(x.215, x.216, z.131)
+        cip   = encaps(z.129, pk(skC.117))
+        cipe  = encaps(z.130, pk(skCe.118))
+        kTA   = kTA.113
+        r1    = r1.115
+        skC   = skC.117
+        skCe  = skCe.118
+        z     = z.120
+        z.1   = verify(x.209, <x.208, z.120, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.216, <x.215, z.131, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.208, x.209, z.120)
+        z.4   = z.126
+        z.5   = z.129
+        z.6   = z.130
+        z.7   = z.131
+    
+    41. cCA   = senc(<
+                      cert(x.224, sign(<x.224, z.128, 'chip'>, ca_sk), z.128), z.134>,
+                     kdf(<'TENC', r1.123>, kTA.121))
+        certT = cert(x.230, sign(<x.230, z.139, 'terminal'>, ca_sk), z.139)
+        cip   = encaps(z.137, pk(skC.125))
+        cipe  = cipe.119
+        kTA   = kTA.121
+        r1    = r1.123
+        skC   = skC.125
+        skCe  = skCe.126
+        z     = z.128
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.224, sign(<x.224, z.128, 'chip'>, ca_sk), z.128)
+        z.4   = z.134
+        z.5   = z.137
+        z.6   = decaps(cipe.119, skCe.126)
+        z.7   = z.139
+    
+    42. cCA   = senc(<cert(x.225, x.226, z.129), z.135>,
+                     kdf(<'TENC', r1.124>, kTA.122))
+        certT = cert(x.232, sign(<x.232, z.140, 'terminal'>, ca_sk), z.140)
+        cip   = encaps(z.138, pk(skC.126))
+        cipe  = cipe.120
+        kTA   = kTA.122
+        r1    = r1.124
+        skC   = skC.126
+        skCe  = skCe.127
+        z     = z.129
+        z.1   = verify(x.226, <x.225, z.129, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.225, x.226, z.129)
+        z.4   = z.135
+        z.5   = z.138
+        z.6   = decaps(cipe.120, skCe.127)
+        z.7   = z.140
+    
+    43. cCA   = senc(<
+                      cert(x.225, sign(<x.225, z.129, 'chip'>, ca_sk), z.129), z.135>,
+                     kdf(<'TENC', r1.124>, kTA.122))
+        certT = cert(x.231, x.232, z.140)
+        cip   = encaps(z.138, pk(skC.126))
+        cipe  = cipe.120
+        kTA   = kTA.122
+        r1    = r1.124
+        skC   = skC.126
+        skCe  = skCe.127
+        z     = z.129
+        z.1   = true
+        z.2   = verify(x.232, <x.231, z.140, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.225, sign(<x.225, z.129, 'chip'>, ca_sk), z.129)
+        z.4   = z.135
+        z.5   = z.138
+        z.6   = decaps(cipe.120, skCe.127)
+        z.7   = z.140
+    
+    44. cCA   = senc(<cert(x.226, x.227, z.130), z.136>,
+                     kdf(<'TENC', r1.125>, kTA.123))
+        certT = cert(x.233, x.234, z.141)
+        cip   = encaps(z.139, pk(skC.127))
+        cipe  = cipe.121
+        kTA   = kTA.123
+        r1    = r1.125
+        skC   = skC.127
+        skCe  = skCe.128
+        z     = z.130
+        z.1   = verify(x.227, <x.226, z.130, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.234, <x.233, z.141, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.226, x.227, z.130)
+        z.4   = z.136
+        z.5   = z.139
+        z.6   = decaps(cipe.121, skCe.128)
+        z.7   = z.141
+    
+    45. cCA   = senc(<
+                      cert(x.233, sign(<x.233, z.133, 'chip'>, ca_sk), z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = cert(x.239, sign(<x.239, z.144, 'terminal'>, ca_sk), z.144)
+        cip   = cip.123
+        cipe  = cipe.124
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.233, sign(<x.233, z.133, 'chip'>, ca_sk), z.133)
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = decaps(cipe.124, skCe.131)
+        z.7   = z.144
+    
+    46. cCA   = senc(<
+                      cert(x.233, sign(<x.233, z.133, 'chip'>, ca_sk), z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = cert(x.239, sign(<x.239, z.144, 'terminal'>, ca_sk), z.144)
+        cip   = cip.123
+        cipe  = encaps(z.143, pk(skCe.131))
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.233, sign(<x.233, z.133, 'chip'>, ca_sk), z.133)
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = z.143
+        z.7   = z.144
+    
+    47. cCA   = senc(<cert(x.234, x.235, z.134), z.140>,
+                     kdf(<'TENC', r1.129>, kTA.127))
+        certT = cert(x.241, sign(<x.241, z.145, 'terminal'>, ca_sk), z.145)
+        cip   = cip.124
+        cipe  = cipe.125
+        kTA   = kTA.127
+        r1    = r1.129
+        skC   = skC.131
+        skCe  = skCe.132
+        z     = z.134
+        z.1   = verify(x.235, <x.234, z.134, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.234, x.235, z.134)
+        z.4   = z.140
+        z.5   = decaps(cip.124, skC.131)
+        z.6   = decaps(cipe.125, skCe.132)
+        z.7   = z.145
+    
+    48. cCA   = senc(<cert(x.234, x.235, z.134), z.140>,
+                     kdf(<'TENC', r1.129>, kTA.127))
+        certT = cert(x.241, sign(<x.241, z.145, 'terminal'>, ca_sk), z.145)
+        cip   = cip.124
+        cipe  = encaps(z.144, pk(skCe.132))
+        kTA   = kTA.127
+        r1    = r1.129
+        skC   = skC.131
+        skCe  = skCe.132
+        z     = z.134
+        z.1   = verify(x.235, <x.234, z.134, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.234, x.235, z.134)
+        z.4   = z.140
+        z.5   = decaps(cip.124, skC.131)
+        z.6   = z.144
+        z.7   = z.145
+    
+    49. cCA   = senc(<
+                      cert(x.234, sign(<x.234, z.134, 'chip'>, ca_sk), z.134), z.140>,
+                     kdf(<'TENC', r1.129>, kTA.127))
+        certT = cert(x.240, x.241, z.145)
+        cip   = cip.124
+        cipe  = cipe.125
+        kTA   = kTA.127
+        r1    = r1.129
+        skC   = skC.131
+        skCe  = skCe.132
+        z     = z.134
+        z.1   = true
+        z.2   = verify(x.241, <x.240, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.234, sign(<x.234, z.134, 'chip'>, ca_sk), z.134)
+        z.4   = z.140
+        z.5   = decaps(cip.124, skC.131)
+        z.6   = decaps(cipe.125, skCe.132)
+        z.7   = z.145
+    
+    50. cCA   = senc(<
+                      cert(x.234, sign(<x.234, z.134, 'chip'>, ca_sk), z.134), z.140>,
+                     kdf(<'TENC', r1.129>, kTA.127))
+        certT = cert(x.240, x.241, z.145)
+        cip   = cip.124
+        cipe  = encaps(z.144, pk(skCe.132))
+        kTA   = kTA.127
+        r1    = r1.129
+        skC   = skC.131
+        skCe  = skCe.132
+        z     = z.134
+        z.1   = true
+        z.2   = verify(x.241, <x.240, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.234, sign(<x.234, z.134, 'chip'>, ca_sk), z.134)
+        z.4   = z.140
+        z.5   = decaps(cip.124, skC.131)
+        z.6   = z.144
+        z.7   = z.145
+    
+    51. cCA   = senc(<cert(x.235, x.236, z.135), z.141>,
+                     kdf(<'TENC', r1.130>, kTA.128))
+        certT = cert(x.242, x.243, z.146)
+        cip   = cip.125
+        cipe  = cipe.126
+        kTA   = kTA.128
+        r1    = r1.130
+        skC   = skC.132
+        skCe  = skCe.133
+        z     = z.135
+        z.1   = verify(x.236, <x.235, z.135, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.243, <x.242, z.146, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.235, x.236, z.135)
+        z.4   = z.141
+        z.5   = decaps(cip.125, skC.132)
+        z.6   = decaps(cipe.126, skCe.133)
+        z.7   = z.146
+    
+    52. cCA   = senc(<cert(x.235, x.236, z.135), z.141>,
+                     kdf(<'TENC', r1.130>, kTA.128))
+        certT = cert(x.242, x.243, z.146)
+        cip   = cip.125
+        cipe  = encaps(z.145, pk(skCe.133))
+        kTA   = kTA.128
+        r1    = r1.130
+        skC   = skC.132
+        skCe  = skCe.133
+        z     = z.135
+        z.1   = verify(x.236, <x.235, z.135, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.243, <x.242, z.146, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.235, x.236, z.135)
+        z.4   = z.141
+        z.5   = decaps(cip.125, skC.132)
+        z.6   = z.145
+        z.7   = z.146
+    
+    53. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132), z.138>,
+                     kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = cip.122
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = z.132
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132)
+        z.4   = z.138
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = cert_id(certT.121)
+    
+    54. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132), z.138>,
+                     kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = cip.122
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = z.132
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132)
+        z.4   = z.138
+        z.5   = decaps(cip.122, skC.129)
+        z.6   = z.142
+        z.7   = cert_id(certT.121)
+    
+    55. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132), z.138>,
+                     kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = encaps(z.141, pk(skC.129))
+        cipe  = cipe.123
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = z.132
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132)
+        z.4   = z.138
+        z.5   = z.141
+        z.6   = decaps(cipe.123, skCe.130)
+        z.7   = cert_id(certT.121)
+    
+    56. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132), z.138>,
+                     kdf(<'TENC', r1.127>, kTA.125))
+        certT = certT.121
+        cip   = encaps(z.141, pk(skC.129))
+        cipe  = encaps(z.142, pk(skCe.130))
+        kTA   = kTA.125
+        r1    = r1.127
+        skC   = skC.129
+        skCe  = skCe.130
+        z     = z.132
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.236, sign(<x.236, z.132, 'chip'>, ca_sk), z.132)
+        z.4   = z.138
+        z.5   = z.141
+        z.6   = z.142
+        z.7   = cert_id(certT.121)
+    
+    57. cCA   = senc(<cert(x.237, x.238, z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = certT.122
+        cip   = cip.123
+        cipe  = cipe.124
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = verify(x.238, <x.237, z.133, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.237, x.238, z.133)
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = decaps(cipe.124, skCe.131)
+        z.7   = cert_id(certT.122)
+    
+    58. cCA   = senc(<cert(x.237, x.238, z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = certT.122
+        cip   = cip.123
+        cipe  = encaps(z.143, pk(skCe.131))
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = verify(x.238, <x.237, z.133, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.237, x.238, z.133)
+        z.4   = z.139
+        z.5   = decaps(cip.123, skC.130)
+        z.6   = z.143
+        z.7   = cert_id(certT.122)
+    
+    59. cCA   = senc(<cert(x.237, x.238, z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = certT.122
+        cip   = encaps(z.142, pk(skC.130))
+        cipe  = cipe.124
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = verify(x.238, <x.237, z.133, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.237, x.238, z.133)
+        z.4   = z.139
+        z.5   = z.142
+        z.6   = decaps(cipe.124, skCe.131)
+        z.7   = cert_id(certT.122)
+    
+    60. cCA   = senc(<cert(x.237, x.238, z.133), z.139>,
+                     kdf(<'TENC', r1.128>, kTA.126))
+        certT = certT.122
+        cip   = encaps(z.142, pk(skC.130))
+        cipe  = encaps(z.143, pk(skCe.131))
+        kTA   = kTA.126
+        r1    = r1.128
+        skC   = skC.130
+        skCe  = skCe.131
+        z     = z.133
+        z.1   = verify(x.238, <x.237, z.133, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.237, x.238, z.133)
+        z.4   = z.139
+        z.5   = z.142
+        z.6   = z.143
+        z.7   = cert_id(certT.122)
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, cipe, kCNF> ),
+   In( <k, ke> ), !Ltk( T, skT, 'terminal' )
+   ]
+  --[
+  Eq( T, cert_id(certT) ),
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))),
+                  'chip'),
+      true
+  ),
+  Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( kTCNF, kdf(<'TCNF', r1>, decaps(cTA, skT)) ),
+  Eq( s,
+      mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), 
+           fst(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT))))), cip, 
+           snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT))))), cipe>,
+          kdf(<'TMAC', r1>, decaps(cTA, skT)))
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), 
+           fst(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT))))), cip, 
+           snd(snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT))))), cipe>,
+          <k, ke>)
+  ),
+  ValidTrans( T, 'terminal',
+              cert_id(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))))
+  )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, cipe, kCNF> ),
+     In( <k, ke> ), !Ltk( T, skT, 'terminal' )
+     ]
+    --[
+    Eq( T, z ), Eq( z.1, true ), Eq( z.2, true ),
+    Eq( kTCNF, kdf(<'TCNF', r1>, z.3) ),
+    Eq( s,
+        mac(<'CA', certT, z.4, z.5, cip, z.6, cipe>, kdf(<'TMAC', r1>, z.3))
+    ),
+    Eq( kCNF, kdf(<'CNF', certT, z.4, z.5, cip, z.6, cipe>, <k, ke>) ),
+    ValidTrans( T, 'terminal', z.7 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. cCA   = cCA.40
+        cTA   = cTA.41
+        certT = certT.42
+        r1    = r1.49
+        skT   = skT.51
+        z     = cert_id(certT.42)
+        z.1   = verify(cert_sig(fst(sdec(cCA.40,
+                                         kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51))))),
+                       <
+                        cert_pk(fst(sdec(cCA.40,
+                                         kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51))))), 
+                        cert_id(fst(sdec(cCA.40,
+                                         kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.42),
+                       <cert_pk(certT.42), cert_id(certT.42), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.41, skT.51)
+        z.4   = fst(sdec(cCA.40, kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51))))
+        z.5   = fst(snd(sdec(cCA.40,
+                             kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51)))))
+        z.6   = snd(snd(sdec(cCA.40,
+                             kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51)))))
+        z.7   = cert_id(fst(sdec(cCA.40,
+                                 kdf(<'TENC', r1.49>, decaps(cTA.41, skT.51)))))
+    
+     2. cCA   = cCA.46
+        cTA   = encaps(z.63, pk(skT.57))
+        certT = certT.48
+        r1    = r1.55
+        skT   = skT.57
+        z     = cert_id(certT.48)
+        z.1   = verify(cert_sig(fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63)))),
+                       <cert_pk(fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63)))), 
+                        cert_id(fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.48),
+                       <cert_pk(certT.48), cert_id(certT.48), 'terminal'>, pk(ca_sk))
+        z.3   = z.63
+        z.4   = fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63)))
+        z.5   = fst(snd(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63))))
+        z.6   = snd(snd(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63))))
+        z.7   = cert_id(fst(sdec(cCA.46, kdf(<'TENC', r1.55>, z.63))))
+    
+     3. cCA   = cCA.129
+        cTA   = cTA.130
+        certT = cert(x.254, sign(<x.254, z.142, 'terminal'>, ca_sk), z.142)
+        r1    = r1.138
+        skT   = skT.140
+        z     = z.142
+        z.1   = verify(cert_sig(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140))))),
+                       <
+                        cert_pk(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140))))), 
+                        cert_id(fst(sdec(cCA.129,
+                                         kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.130, skT.140)
+        z.4   = fst(sdec(cCA.129,
+                         kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140))))
+        z.5   = fst(snd(sdec(cCA.129,
+                             kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))))
+        z.6   = snd(snd(sdec(cCA.129,
+                             kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))))
+        z.7   = cert_id(fst(sdec(cCA.129,
+                                 kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))))
+    
+     4. cCA   = cCA.130
+        cTA   = cTA.131
+        certT = cert(x.255, x.256, z.143)
+        r1    = r1.139
+        skT   = skT.141
+        z     = z.143
+        z.1   = verify(cert_sig(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141))))),
+                       <
+                        cert_pk(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141))))), 
+                        cert_id(fst(sdec(cCA.130,
+                                         kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.256, <x.255, z.143, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.131, skT.141)
+        z.4   = fst(sdec(cCA.130,
+                         kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141))))
+        z.5   = fst(snd(sdec(cCA.130,
+                             kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))))
+        z.6   = snd(snd(sdec(cCA.130,
+                             kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))))
+        z.7   = cert_id(fst(sdec(cCA.130,
+                                 kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))))
+    
+     5. cCA   = cCA.131
+        cTA   = encaps(z.148, pk(skT.142))
+        certT = cert(x.258, sign(<x.258, z.144, 'terminal'>, ca_sk), z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = verify(cert_sig(fst(sdec(cCA.131,
+                                         kdf(<'TENC', r1.140>, z.148)))),
+                       <cert_pk(fst(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148)))), 
+                        cert_id(fst(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.148
+        z.4   = fst(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148)))
+        z.5   = fst(snd(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148))))
+        z.6   = snd(snd(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148))))
+        z.7   = cert_id(fst(sdec(cCA.131, kdf(<'TENC', r1.140>, z.148))))
+    
+     6. cCA   = cCA.132
+        cTA   = encaps(z.149, pk(skT.143))
+        certT = cert(x.259, x.260, z.145)
+        r1    = r1.141
+        skT   = skT.143
+        z     = z.145
+        z.1   = verify(cert_sig(fst(sdec(cCA.132,
+                                         kdf(<'TENC', r1.141>, z.149)))),
+                       <cert_pk(fst(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149)))), 
+                        cert_id(fst(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.260, <x.259, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = z.149
+        z.4   = fst(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149)))
+        z.5   = fst(snd(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149))))
+        z.6   = snd(snd(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149))))
+        z.7   = cert_id(fst(sdec(cCA.132, kdf(<'TENC', r1.141>, z.149))))
+    
+     7. cCA   = senc(x.177, kdf(<'TENC', r1.97>, z.105))
+        cTA   = encaps(z.105, pk(skT.99))
+        certT = cert(x.181, sign(<x.181, z.101, 'terminal'>, ca_sk), z.101)
+        r1    = r1.97
+        skT   = skT.99
+        z     = z.101
+        z.1   = verify(cert_sig(fst(x.177)),
+                       <cert_pk(fst(x.177)), cert_id(fst(x.177)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.105
+        z.4   = fst(x.177)
+        z.5   = fst(snd(x.177))
+        z.6   = snd(snd(x.177))
+        z.7   = cert_id(fst(x.177))
+    
+     8. cCA   = senc(x.178, kdf(<'TENC', r1.98>, z.106))
+        cTA   = encaps(z.106, pk(skT.100))
+        certT = cert(x.182, x.183, z.102)
+        r1    = r1.98
+        skT   = skT.100
+        z     = z.102
+        z.1   = verify(cert_sig(fst(x.178)),
+                       <cert_pk(fst(x.178)), cert_id(fst(x.178)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.183, <x.182, z.102, 'terminal'>, pk(ca_sk))
+        z.3   = z.106
+        z.4   = fst(x.178)
+        z.5   = fst(snd(x.178))
+        z.6   = snd(snd(x.178))
+        z.7   = cert_id(fst(x.178))
+    
+     9. cCA   = senc(x.236, kdf(<'TENC', r1.128>, z.136))
+        cTA   = encaps(z.136, pk(skT.130))
+        certT = certT.121
+        r1    = r1.128
+        skT   = skT.130
+        z     = cert_id(certT.121)
+        z.1   = verify(cert_sig(fst(x.236)),
+                       <cert_pk(fst(x.236)), cert_id(fst(x.236)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = z.136
+        z.4   = fst(x.236)
+        z.5   = fst(snd(x.236))
+        z.6   = snd(snd(x.236))
+        z.7   = cert_id(fst(x.236))
+    
+    10. cCA   = senc(x.245, kdf(<'TENC', r1.133>, decaps(cTA.125, skT.135)))
+        cTA   = cTA.125
+        certT = certT.126
+        r1    = r1.133
+        skT   = skT.135
+        z     = cert_id(certT.126)
+        z.1   = verify(cert_sig(fst(x.245)),
+                       <cert_pk(fst(x.245)), cert_id(fst(x.245)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.126),
+                       <cert_pk(certT.126), cert_id(certT.126), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.125, skT.135)
+        z.4   = fst(x.245)
+        z.5   = fst(snd(x.245))
+        z.6   = snd(snd(x.245))
+        z.7   = cert_id(fst(x.245))
+    
+    11. cCA   = senc(x.249, kdf(<'TENC', r1.137>, decaps(cTA.129, skT.139)))
+        cTA   = cTA.129
+        certT = cert(x.253, sign(<x.253, z.141, 'terminal'>, ca_sk), z.141)
+        r1    = r1.137
+        skT   = skT.139
+        z     = z.141
+        z.1   = verify(cert_sig(fst(x.249)),
+                       <cert_pk(fst(x.249)), cert_id(fst(x.249)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.129, skT.139)
+        z.4   = fst(x.249)
+        z.5   = fst(snd(x.249))
+        z.6   = snd(snd(x.249))
+        z.7   = cert_id(fst(x.249))
+    
+    12. cCA   = senc(x.250, kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))
+        cTA   = cTA.130
+        certT = cert(x.254, x.255, z.142)
+        r1    = r1.138
+        skT   = skT.140
+        z     = z.142
+        z.1   = verify(cert_sig(fst(x.250)),
+                       <cert_pk(fst(x.250)), cert_id(fst(x.250)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.255, <x.254, z.142, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.130, skT.140)
+        z.4   = fst(x.250)
+        z.5   = fst(snd(x.250))
+        z.6   = snd(snd(x.250))
+        z.7   = cert_id(fst(x.250))
+    
+    13. cCA   = senc(<z.65, z.66, z.67>, kdf(<'TENC', r1.55>, z.63))
+        cTA   = encaps(z.63, pk(skT.57))
+        certT = certT.48
+        r1    = r1.55
+        skT   = skT.57
+        z     = cert_id(certT.48)
+        z.1   = verify(cert_sig(z.65), <cert_pk(z.65), cert_id(z.65), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.48),
+                       <cert_pk(certT.48), cert_id(certT.48), 'terminal'>, pk(ca_sk))
+        z.3   = z.63
+        z.4   = z.65
+        z.5   = z.66
+        z.6   = z.67
+        z.7   = cert_id(z.65)
+    
+    14. cCA   = senc(<z.67, z.68, z.69>,
+                     kdf(<'TENC', r1.57>, decaps(cTA.49, skT.59)))
+        cTA   = cTA.49
+        certT = certT.50
+        r1    = r1.57
+        skT   = skT.59
+        z     = cert_id(certT.50)
+        z.1   = verify(cert_sig(z.67), <cert_pk(z.67), cert_id(z.67), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.50),
+                       <cert_pk(certT.50), cert_id(certT.50), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.49, skT.59)
+        z.4   = z.67
+        z.5   = z.68
+        z.6   = z.69
+        z.7   = cert_id(z.67)
+    
+    15. cCA   = senc(<z.108, x.179>, kdf(<'TENC', r1.98>, z.106))
+        cTA   = encaps(z.106, pk(skT.100))
+        certT = cert(x.183, sign(<x.183, z.102, 'terminal'>, ca_sk), z.102)
+        r1    = r1.98
+        skT   = skT.100
+        z     = z.102
+        z.1   = verify(cert_sig(z.108), <cert_pk(z.108), cert_id(z.108), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.106
+        z.4   = z.108
+        z.5   = fst(x.179)
+        z.6   = snd(x.179)
+        z.7   = cert_id(z.108)
+    
+    16. cCA   = senc(<z.109, x.180>, kdf(<'TENC', r1.99>, z.107))
+        cTA   = encaps(z.107, pk(skT.101))
+        certT = cert(x.184, x.185, z.103)
+        r1    = r1.99
+        skT   = skT.101
+        z     = z.103
+        z.1   = verify(cert_sig(z.109), <cert_pk(z.109), cert_id(z.109), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.185, <x.184, z.103, 'terminal'>, pk(ca_sk))
+        z.3   = z.107
+        z.4   = z.109
+        z.5   = fst(x.180)
+        z.6   = snd(x.180)
+        z.7   = cert_id(z.109)
+    
+    17. cCA   = senc(<z.109, z.110, z.111>, kdf(<'TENC', r1.99>, z.107))
+        cTA   = encaps(z.107, pk(skT.101))
+        certT = cert(x.185, sign(<x.185, z.103, 'terminal'>, ca_sk), z.103)
+        r1    = r1.99
+        skT   = skT.101
+        z     = z.103
+        z.1   = verify(cert_sig(z.109), <cert_pk(z.109), cert_id(z.109), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.107
+        z.4   = z.109
+        z.5   = z.110
+        z.6   = z.111
+        z.7   = cert_id(z.109)
+    
+    18. cCA   = senc(<z.110, z.111, z.112>, kdf(<'TENC', r1.100>, z.108))
+        cTA   = encaps(z.108, pk(skT.102))
+        certT = cert(x.186, x.187, z.104)
+        r1    = r1.100
+        skT   = skT.102
+        z     = z.104
+        z.1   = verify(cert_sig(z.110), <cert_pk(z.110), cert_id(z.110), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.187, <x.186, z.104, 'terminal'>, pk(ca_sk))
+        z.3   = z.108
+        z.4   = z.110
+        z.5   = z.111
+        z.6   = z.112
+        z.7   = cert_id(z.110)
+    
+    19. cCA   = senc(<z.139, x.238>, kdf(<'TENC', r1.129>, z.137))
+        cTA   = encaps(z.137, pk(skT.131))
+        certT = certT.122
+        r1    = r1.129
+        skT   = skT.131
+        z     = cert_id(certT.122)
+        z.1   = verify(cert_sig(z.139), <cert_pk(z.139), cert_id(z.139), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = z.137
+        z.4   = z.139
+        z.5   = fst(x.238)
+        z.6   = snd(x.238)
+        z.7   = cert_id(z.139)
+    
+    20. cCA   = senc(<z.144, x.247>,
+                     kdf(<'TENC', r1.134>, decaps(cTA.126, skT.136)))
+        cTA   = cTA.126
+        certT = certT.127
+        r1    = r1.134
+        skT   = skT.136
+        z     = cert_id(certT.127)
+        z.1   = verify(cert_sig(z.144), <cert_pk(z.144), cert_id(z.144), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.127),
+                       <cert_pk(certT.127), cert_id(certT.127), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.126, skT.136)
+        z.4   = z.144
+        z.5   = fst(x.247)
+        z.6   = snd(x.247)
+        z.7   = cert_id(z.144)
+    
+    21. cCA   = senc(<z.148, x.251>,
+                     kdf(<'TENC', r1.138>, decaps(cTA.130, skT.140)))
+        cTA   = cTA.130
+        certT = cert(x.255, sign(<x.255, z.142, 'terminal'>, ca_sk), z.142)
+        r1    = r1.138
+        skT   = skT.140
+        z     = z.142
+        z.1   = verify(cert_sig(z.148), <cert_pk(z.148), cert_id(z.148), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.130, skT.140)
+        z.4   = z.148
+        z.5   = fst(x.251)
+        z.6   = snd(x.251)
+        z.7   = cert_id(z.148)
+    
+    22. cCA   = senc(<z.149, x.252>,
+                     kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))
+        cTA   = cTA.131
+        certT = cert(x.256, x.257, z.143)
+        r1    = r1.139
+        skT   = skT.141
+        z     = z.143
+        z.1   = verify(cert_sig(z.149), <cert_pk(z.149), cert_id(z.149), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.257, <x.256, z.143, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.131, skT.141)
+        z.4   = z.149
+        z.5   = fst(x.252)
+        z.6   = snd(x.252)
+        z.7   = cert_id(z.149)
+    
+    23. cCA   = senc(<z.149, z.150, z.151>,
+                     kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))
+        cTA   = cTA.131
+        certT = cert(x.257, sign(<x.257, z.143, 'terminal'>, ca_sk), z.143)
+        r1    = r1.139
+        skT   = skT.141
+        z     = z.143
+        z.1   = verify(cert_sig(z.149), <cert_pk(z.149), cert_id(z.149), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.131, skT.141)
+        z.4   = z.149
+        z.5   = z.150
+        z.6   = z.151
+        z.7   = cert_id(z.149)
+    
+    24. cCA   = senc(<z.150, z.151, z.152>,
+                     kdf(<'TENC', r1.140>, decaps(cTA.132, skT.142)))
+        cTA   = cTA.132
+        certT = cert(x.258, x.259, z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = verify(cert_sig(z.150), <cert_pk(z.150), cert_id(z.150), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.259, <x.258, z.144, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.132, skT.142)
+        z.4   = z.150
+        z.5   = z.151
+        z.6   = z.152
+        z.7   = cert_id(z.150)
+    
+    25. cCA   = senc(<
+                      cert(x.179, sign(<x.179, z.114, 'chip'>, ca_sk), z.114), x.181>,
+                     kdf(<'TENC', r1.99>, z.107))
+        cTA   = encaps(z.107, pk(skT.101))
+        certT = cert(x.185, sign(<x.185, z.103, 'terminal'>, ca_sk), z.103)
+        r1    = r1.99
+        skT   = skT.101
+        z     = z.103
+        z.1   = true
+        z.2   = true
+        z.3   = z.107
+        z.4   = cert(x.179, sign(<x.179, z.114, 'chip'>, ca_sk), z.114)
+        z.5   = fst(x.181)
+        z.6   = snd(x.181)
+        z.7   = z.114
+    
+    26. cCA   = senc(<cert(x.180, x.181, z.115), x.183>,
+                     kdf(<'TENC', r1.100>, z.108))
+        cTA   = encaps(z.108, pk(skT.102))
+        certT = cert(x.187, sign(<x.187, z.104, 'terminal'>, ca_sk), z.104)
+        r1    = r1.100
+        skT   = skT.102
+        z     = z.104
+        z.1   = verify(x.181, <x.180, z.115, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.108
+        z.4   = cert(x.180, x.181, z.115)
+        z.5   = fst(x.183)
+        z.6   = snd(x.183)
+        z.7   = z.115
+    
+    27. cCA   = senc(<
+                      cert(x.180, sign(<x.180, z.115, 'chip'>, ca_sk), z.115), x.182>,
+                     kdf(<'TENC', r1.100>, z.108))
+        cTA   = encaps(z.108, pk(skT.102))
+        certT = cert(x.186, x.187, z.104)
+        r1    = r1.100
+        skT   = skT.102
+        z     = z.104
+        z.1   = true
+        z.2   = verify(x.187, <x.186, z.104, 'terminal'>, pk(ca_sk))
+        z.3   = z.108
+        z.4   = cert(x.180, sign(<x.180, z.115, 'chip'>, ca_sk), z.115)
+        z.5   = fst(x.182)
+        z.6   = snd(x.182)
+        z.7   = z.115
+    
+    28. cCA   = senc(<
+                      cert(x.180, sign(<x.180, z.115, 'chip'>, ca_sk), z.115), z.111, z.112>,
+                     kdf(<'TENC', r1.100>, z.108))
+        cTA   = encaps(z.108, pk(skT.102))
+        certT = cert(x.187, sign(<x.187, z.104, 'terminal'>, ca_sk), z.104)
+        r1    = r1.100
+        skT   = skT.102
+        z     = z.104
+        z.1   = true
+        z.2   = true
+        z.3   = z.108
+        z.4   = cert(x.180, sign(<x.180, z.115, 'chip'>, ca_sk), z.115)
+        z.5   = z.111
+        z.6   = z.112
+        z.7   = z.115
+    
+    29. cCA   = senc(<cert(x.181, x.182, z.116), x.184>,
+                     kdf(<'TENC', r1.101>, z.109))
+        cTA   = encaps(z.109, pk(skT.103))
+        certT = cert(x.188, x.189, z.105)
+        r1    = r1.101
+        skT   = skT.103
+        z     = z.105
+        z.1   = verify(x.182, <x.181, z.116, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.189, <x.188, z.105, 'terminal'>, pk(ca_sk))
+        z.3   = z.109
+        z.4   = cert(x.181, x.182, z.116)
+        z.5   = fst(x.184)
+        z.6   = snd(x.184)
+        z.7   = z.116
+    
+    30. cCA   = senc(<cert(x.181, x.182, z.116), z.112, z.113>,
+                     kdf(<'TENC', r1.101>, z.109))
+        cTA   = encaps(z.109, pk(skT.103))
+        certT = cert(x.189, sign(<x.189, z.105, 'terminal'>, ca_sk), z.105)
+        r1    = r1.101
+        skT   = skT.103
+        z     = z.105
+        z.1   = verify(x.182, <x.181, z.116, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.109
+        z.4   = cert(x.181, x.182, z.116)
+        z.5   = z.112
+        z.6   = z.113
+        z.7   = z.116
+    
+    31. cCA   = senc(<
+                      cert(x.181, sign(<x.181, z.116, 'chip'>, ca_sk), z.116), z.112, z.113>,
+                     kdf(<'TENC', r1.101>, z.109))
+        cTA   = encaps(z.109, pk(skT.103))
+        certT = cert(x.188, x.189, z.105)
+        r1    = r1.101
+        skT   = skT.103
+        z     = z.105
+        z.1   = true
+        z.2   = verify(x.189, <x.188, z.105, 'terminal'>, pk(ca_sk))
+        z.3   = z.109
+        z.4   = cert(x.181, sign(<x.181, z.116, 'chip'>, ca_sk), z.116)
+        z.5   = z.112
+        z.6   = z.113
+        z.7   = z.116
+    
+    32. cCA   = senc(<cert(x.182, x.183, z.117), z.113, z.114>,
+                     kdf(<'TENC', r1.102>, z.110))
+        cTA   = encaps(z.110, pk(skT.104))
+        certT = cert(x.190, x.191, z.106)
+        r1    = r1.102
+        skT   = skT.104
+        z     = z.106
+        z.1   = verify(x.183, <x.182, z.117, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.191, <x.190, z.106, 'terminal'>, pk(ca_sk))
+        z.3   = z.110
+        z.4   = cert(x.182, x.183, z.117)
+        z.5   = z.113
+        z.6   = z.114
+        z.7   = z.117
+    
+    33. cCA   = senc(<
+                      cert(x.236, sign(<x.236, z.143, 'chip'>, ca_sk), z.143), z.139, z.140>,
+                     kdf(<'TENC', r1.128>, z.136))
+        cTA   = encaps(z.136, pk(skT.130))
+        certT = certT.121
+        r1    = r1.128
+        skT   = skT.130
+        z     = cert_id(certT.121)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.121),
+                       <cert_pk(certT.121), cert_id(certT.121), 'terminal'>, pk(ca_sk))
+        z.3   = z.136
+        z.4   = cert(x.236, sign(<x.236, z.143, 'chip'>, ca_sk), z.143)
+        z.5   = z.139
+        z.6   = z.140
+        z.7   = z.143
+    
+    34. cCA   = senc(<cert(x.237, x.238, z.144), z.140, z.141>,
+                     kdf(<'TENC', r1.129>, z.137))
+        cTA   = encaps(z.137, pk(skT.131))
+        certT = certT.122
+        r1    = r1.129
+        skT   = skT.131
+        z     = cert_id(certT.122)
+        z.1   = verify(x.238, <x.237, z.144, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.122),
+                       <cert_pk(certT.122), cert_id(certT.122), 'terminal'>, pk(ca_sk))
+        z.3   = z.137
+        z.4   = cert(x.237, x.238, z.144)
+        z.5   = z.140
+        z.6   = z.141
+        z.7   = z.144
+    
+    35. cCA   = senc(<
+                      cert(x.238, sign(<x.238, z.145, 'chip'>, ca_sk), z.145), x.240>,
+                     kdf(<'TENC', r1.130>, z.138))
+        cTA   = encaps(z.138, pk(skT.132))
+        certT = certT.123
+        r1    = r1.130
+        skT   = skT.132
+        z     = cert_id(certT.123)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.123),
+                       <cert_pk(certT.123), cert_id(certT.123), 'terminal'>, pk(ca_sk))
+        z.3   = z.138
+        z.4   = cert(x.238, sign(<x.238, z.145, 'chip'>, ca_sk), z.145)
+        z.5   = fst(x.240)
+        z.6   = snd(x.240)
+        z.7   = z.145
+    
+    36. cCA   = senc(<cert(x.239, x.240, z.146), x.242>,
+                     kdf(<'TENC', r1.131>, z.139))
+        cTA   = encaps(z.139, pk(skT.133))
+        certT = certT.124
+        r1    = r1.131
+        skT   = skT.133
+        z     = cert_id(certT.124)
+        z.1   = verify(x.240, <x.239, z.146, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.124),
+                       <cert_pk(certT.124), cert_id(certT.124), 'terminal'>, pk(ca_sk))
+        z.3   = z.139
+        z.4   = cert(x.239, x.240, z.146)
+        z.5   = fst(x.242)
+        z.6   = snd(x.242)
+        z.7   = z.146
+    
+    37. cCA   = senc(<
+                      cert(x.245, sign(<x.245, z.148, 'chip'>, ca_sk), z.148), z.144, z.145>,
+                     kdf(<'TENC', r1.133>, decaps(cTA.125, skT.135)))
+        cTA   = cTA.125
+        certT = certT.126
+        r1    = r1.133
+        skT   = skT.135
+        z     = cert_id(certT.126)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.126),
+                       <cert_pk(certT.126), cert_id(certT.126), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.125, skT.135)
+        z.4   = cert(x.245, sign(<x.245, z.148, 'chip'>, ca_sk), z.148)
+        z.5   = z.144
+        z.6   = z.145
+        z.7   = z.148
+    
+    38. cCA   = senc(<cert(x.246, x.247, z.149), z.145, z.146>,
+                     kdf(<'TENC', r1.134>, decaps(cTA.126, skT.136)))
+        cTA   = cTA.126
+        certT = certT.127
+        r1    = r1.134
+        skT   = skT.136
+        z     = cert_id(certT.127)
+        z.1   = verify(x.247, <x.246, z.149, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.127),
+                       <cert_pk(certT.127), cert_id(certT.127), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.126, skT.136)
+        z.4   = cert(x.246, x.247, z.149)
+        z.5   = z.145
+        z.6   = z.146
+        z.7   = z.149
+    
+    39. cCA   = senc(<
+                      cert(x.247, sign(<x.247, z.150, 'chip'>, ca_sk), z.150), x.249>,
+                     kdf(<'TENC', r1.135>, decaps(cTA.127, skT.137)))
+        cTA   = cTA.127
+        certT = certT.128
+        r1    = r1.135
+        skT   = skT.137
+        z     = cert_id(certT.128)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.128),
+                       <cert_pk(certT.128), cert_id(certT.128), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.127, skT.137)
+        z.4   = cert(x.247, sign(<x.247, z.150, 'chip'>, ca_sk), z.150)
+        z.5   = fst(x.249)
+        z.6   = snd(x.249)
+        z.7   = z.150
+    
+    40. cCA   = senc(<cert(x.248, x.249, z.151), x.251>,
+                     kdf(<'TENC', r1.136>, decaps(cTA.128, skT.138)))
+        cTA   = cTA.128
+        certT = certT.129
+        r1    = r1.136
+        skT   = skT.138
+        z     = cert_id(certT.129)
+        z.1   = verify(x.249, <x.248, z.151, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.129),
+                       <cert_pk(certT.129), cert_id(certT.129), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.128, skT.138)
+        z.4   = cert(x.248, x.249, z.151)
+        z.5   = fst(x.251)
+        z.6   = snd(x.251)
+        z.7   = z.151
+    
+    41. cCA   = senc(<
+                      cert(x.251, sign(<x.251, z.154, 'chip'>, ca_sk), z.154), x.253>,
+                     kdf(<'TENC', r1.139>, decaps(cTA.131, skT.141)))
+        cTA   = cTA.131
+        certT = cert(x.257, sign(<x.257, z.143, 'terminal'>, ca_sk), z.143)
+        r1    = r1.139
+        skT   = skT.141
+        z     = z.143
+        z.1   = true
+        z.2   = true
+        z.3   = decaps(cTA.131, skT.141)
+        z.4   = cert(x.251, sign(<x.251, z.154, 'chip'>, ca_sk), z.154)
+        z.5   = fst(x.253)
+        z.6   = snd(x.253)
+        z.7   = z.154
+    
+    42. cCA   = senc(<cert(x.252, x.253, z.155), x.255>,
+                     kdf(<'TENC', r1.140>, decaps(cTA.132, skT.142)))
+        cTA   = cTA.132
+        certT = cert(x.259, sign(<x.259, z.144, 'terminal'>, ca_sk), z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = verify(x.253, <x.252, z.155, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.132, skT.142)
+        z.4   = cert(x.252, x.253, z.155)
+        z.5   = fst(x.255)
+        z.6   = snd(x.255)
+        z.7   = z.155
+    
+    43. cCA   = senc(<
+                      cert(x.252, sign(<x.252, z.155, 'chip'>, ca_sk), z.155), x.254>,
+                     kdf(<'TENC', r1.140>, decaps(cTA.132, skT.142)))
+        cTA   = cTA.132
+        certT = cert(x.258, x.259, z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = true
+        z.2   = verify(x.259, <x.258, z.144, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.132, skT.142)
+        z.4   = cert(x.252, sign(<x.252, z.155, 'chip'>, ca_sk), z.155)
+        z.5   = fst(x.254)
+        z.6   = snd(x.254)
+        z.7   = z.155
+    
+    44. cCA   = senc(<
+                      cert(x.252, sign(<x.252, z.155, 'chip'>, ca_sk), z.155), z.151, z.152>,
+                     kdf(<'TENC', r1.140>, decaps(cTA.132, skT.142)))
+        cTA   = cTA.132
+        certT = cert(x.259, sign(<x.259, z.144, 'terminal'>, ca_sk), z.144)
+        r1    = r1.140
+        skT   = skT.142
+        z     = z.144
+        z.1   = true
+        z.2   = true
+        z.3   = decaps(cTA.132, skT.142)
+        z.4   = cert(x.252, sign(<x.252, z.155, 'chip'>, ca_sk), z.155)
+        z.5   = z.151
+        z.6   = z.152
+        z.7   = z.155
+    
+    45. cCA   = senc(<cert(x.253, x.254, z.156), x.256>,
+                     kdf(<'TENC', r1.141>, decaps(cTA.133, skT.143)))
+        cTA   = cTA.133
+        certT = cert(x.260, x.261, z.145)
+        r1    = r1.141
+        skT   = skT.143
+        z     = z.145
+        z.1   = verify(x.254, <x.253, z.156, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.261, <x.260, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.133, skT.143)
+        z.4   = cert(x.253, x.254, z.156)
+        z.5   = fst(x.256)
+        z.6   = snd(x.256)
+        z.7   = z.156
+    
+    46. cCA   = senc(<cert(x.253, x.254, z.156), z.152, z.153>,
+                     kdf(<'TENC', r1.141>, decaps(cTA.133, skT.143)))
+        cTA   = cTA.133
+        certT = cert(x.261, sign(<x.261, z.145, 'terminal'>, ca_sk), z.145)
+        r1    = r1.141
+        skT   = skT.143
+        z     = z.145
+        z.1   = verify(x.254, <x.253, z.156, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.133, skT.143)
+        z.4   = cert(x.253, x.254, z.156)
+        z.5   = z.152
+        z.6   = z.153
+        z.7   = z.156
+    
+    47. cCA   = senc(<
+                      cert(x.253, sign(<x.253, z.156, 'chip'>, ca_sk), z.156), z.152, z.153>,
+                     kdf(<'TENC', r1.141>, decaps(cTA.133, skT.143)))
+        cTA   = cTA.133
+        certT = cert(x.260, x.261, z.145)
+        r1    = r1.141
+        skT   = skT.143
+        z     = z.145
+        z.1   = true
+        z.2   = verify(x.261, <x.260, z.145, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.133, skT.143)
+        z.4   = cert(x.253, sign(<x.253, z.156, 'chip'>, ca_sk), z.156)
+        z.5   = z.152
+        z.6   = z.153
+        z.7   = z.156
+    
+    48. cCA   = senc(<cert(x.254, x.255, z.157), z.153, z.154>,
+                     kdf(<'TENC', r1.142>, decaps(cTA.134, skT.144)))
+        cTA   = cTA.134
+        certT = cert(x.262, x.263, z.146)
+        r1    = r1.142
+        skT   = skT.144
+        z     = z.146
+        z.1   = verify(x.255, <x.254, z.157, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.263, <x.262, z.146, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.134, skT.144)
+        z.4   = cert(x.254, x.255, z.157)
+        z.5   = z.153
+        z.6   = z.154
+        z.7   = z.157
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                              <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( mac(<'CA', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                kdf(<'TMAC', ~r1>, ~kTA))
+                       ) @ #vk.5 )
+                  case TA_RESPONSE_T
+                  solve( !KU( senc(<
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, pk(~skCe)>,
+                                   kdf(<'TENC', ~r1>, ~kTA))
+                         ) @ #vk.28 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( encaps(~kTA, pk(~skT)) ) @ #vk.28 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~r1 ) @ #vk.28 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                               ) @ #vk.19 )
+                          case CA_Sign_ltk
+                          solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.11 )
+                            case TA_RESPONSE_T
+                            solve( splitEqs(4) )
+                              case split_case_1
+                              solve( !KU( encaps(~kTA, pk(~skT.1)) ) @ #vk.35 )
+                                case TA_CHALLENGE_C
+                                solve( !KU( senc(<cert(z, sign(<z, x, 'chip'>, ca_sk), x), x.1>,
+                                                 kdf(<'TENC', ~r1>, ~kTA))
+                                       ) @ #vk.35 )
+                                  case c_senc
+                                  solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.37 )
+                                    case c_kdf
+                                    solve( !KU( ~kTA ) @ #vk.41 )
+                                      case TA_CHALLENGE_C
+                                      solve( !KU( ~skT ) @ #vk.43 )
+                                        case Corrupt_ltk
+                                        solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.41 )
+                                          case CA_Sign_ltk
+                                          solve( !KU( kdf(<'CNF', 
+                                                           cert(pk(~skT),
+                                                                sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                                $C), 
+                                                           ~r2, encaps(~k, pk(~ltk)), pk(~skCe), 
+                                                           encaps(~ke, pk(~skCe))>,
+                                                          <~k, ~ke>)
+                                                 ) @ #vk.33 )
+                                            case TA_COMPLETE_C
+                                            solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.26 )
+                                              case TA_RESPONSE_T
+                                              solve( !KU( encaps(~ke, pk(~skCe)) ) @ #vk.29 )
+                                                case TA_RESPONSE_T
+                                                SOLVED // trace found
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                              <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case TA_COMPLETE_C_case_1
+                solve( TAChallengeC( <$C, iid.1>, cert(x, x.1, $T), id_c.1, r1.1, r2.1,
+                                     skCe.1, kTMAC, kTCNF
+                       ) ▶₁ #i2 )
+                  case TA_CHALLENGE_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( kdf(<'KEY', 
+                                             cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), 
+                                             ~r2.1, cip, pk(~skCe.1), cipe>,
+                                            <z, z.1>),
+                                        <cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1, 
+                                         cip, pk(~skCe.1), cipe>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( TAResponseT( <$T, iid.3>, id_c.3,
+                                            cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C),
+                                            ~r2.1, <z, cip>, <z.1, cipe>, pk(~skCe.1)
+                               ) ▶₁ #j2 )
+                          case TA_RESPONSE_T
+                          solve( !Cert( $T, cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( splitEqs(2) )
+                              case split_case_1
+                              solve( splitEqs(5) )
+                                case split_case_1
+                                solve( !KU( mac(<'CA', 
+                                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                      $T), 
+                                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                 ~r2, encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))
+                                                >,
+                                                kdf(<'TMAC', ~r1>, ~kTA))
+                                       ) @ #vk.5 )
+                                  case c_mac
+                                  solve( !KU( ~r2 ) @ #vk.59 )
+                                    case TA_CHALLENGE_C
+                                    solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                                      case TA_RESPONSE_T
+                                      solve( splitEqs(8) )
+                                        case split_case_1
+                                        solve( !KU( senc(<
+                                                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                               $C), 
+                                                          ~r2, pk(~skCe)>,
+                                                         kdf(<'TENC', r1.2>, decaps(cTA, ~skT)))
+                                               ) @ #vk.47 )
+                                          case c_senc
+                                          solve( !KU( mac(<'CA', 
+                                                           cert(pk(~ltk.2),
+                                                                sign(<pk(~ltk.2), $T, 'terminal'>, ca_sk),
+                                                                $T), 
+                                                           cert(pk(~skC), sign(<pk(~skC), $C, 'chip'>, ca_sk),
+                                                                $C), 
+                                                           ~r2.1, encaps(~k.1, pk(~skC)), pk(~skCe.1), 
+                                                           encaps(~ke.1, pk(~skCe.1))>,
+                                                          kdf(<'TMAC', ~r1.1>, ~kTA.1))
+                                                 ) @ #vk.53 )
+                                            case TA_RESPONSE_T
+                                            solve( !KU( senc(<
+                                                              cert(pk(~skC),
+                                                                   sign(<pk(~skC), $C, 'chip'>, ca_sk), $C), 
+                                                              ~r2.1, pk(~skCe.1)>,
+                                                             kdf(<'TENC', ~r1.1>, ~kTA.1))
+                                                   ) @ #vk.62 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( encaps(~kTA.1, pk(~skT.1)) ) @ #vk.62 )
+                                                case TA_CHALLENGE_C
+                                                solve( !KU( kdf(<'TMAC', ~r1>, ~kTA) ) @ #vk.63 )
+                                                  case c_kdf
+                                                  solve( !KU( ~kTA ) @ #vk.74 )
+                                                    case TA_CHALLENGE_C
+                                                    solve( !KU( ~ltk.1 ) @ #vk.76 )
+                                                      case Corrupt_ltk
+                                                      solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.69 )
+                                                        case c_kdf
+                                                        solve( !KU( encaps(~kTA, pk(~skT.2)) ) @ #vk.74 )
+                                                          case TA_CHALLENGE_C
+                                                          solve( !KU( senc(<
+                                                                            cert(z,
+                                                                                 sign(<z, x, 'chip'>, ca_sk),
+                                                                                 x), 
+                                                                            x.1>,
+                                                                           kdf(<'TENC', ~r1>, ~kTA))
+                                                                 ) @ #vk.75 )
+                                                            case c_senc
+                                                            solve( !KU( kdf(<'TENC', r1.2>,
+                                                                            decaps(cTA, ~skT.1))
+                                                                   ) @ #vk.76 )
+                                                              case c_kdf
+                                                              solve( !KU( decaps(cTA, ~skT.1) ) @ #vk.83 )
+                                                                case c_decaps
+                                                                solve( !KU( ~skT.1 ) @ #vk.84 )
+                                                                  case Corrupt_ltk
+                                                                  solve( !KU( cert(z,
+                                                                                   sign(<z, x, 'chip'>,
+                                                                                        ca_sk),
+                                                                                   x)
+                                                                         ) @ #vk.83 )
+                                                                    case CA_Sign_ltk
+                                                                    solve( !KU( ~r1 ) @ #vk.78 )
+                                                                      case TA_CHALLENGE_C
+                                                                      solve( !KU( ~r1.1 ) @ #vk.75 )
+                                                                        case TA_CHALLENGE_C
+                                                                        solve( !KU( cert(pk(~ltk.1),
+                                                                                         sign(<pk(~ltk.1), 
+                                                                                               $T, 'terminal'
+                                                                                              >,
+                                                                                              ca_sk),
+                                                                                         $T)
+                                                                               ) @ #vk.58 )
+                                                                          case CA_Sign_ltk
+                                                                          solve( !KU( kdf(<'CNF', 
+                                                                                           cert(pk(~ltk.1),
+                                                                                                sign(<
+                                                                                                      pk(~ltk.1), 
+                                                                                                      $T, 
+                                                                                                      'terminal'
+                                                                                                     >,
+                                                                                                     ca_sk),
+                                                                                                $T), 
+                                                                                           cert(pk(~ltk),
+                                                                                                sign(<
+                                                                                                      pk(~ltk), 
+                                                                                                      $C, 
+                                                                                                      'chip'>,
+                                                                                                     ca_sk),
+                                                                                                $C), 
+                                                                                           ~r2, 
+                                                                                           encaps(~k,
+                                                                                                  pk(~ltk)), 
+                                                                                           pk(~skCe), 
+                                                                                           encaps(~ke,
+                                                                                                  pk(~skCe))
+                                                                                          >,
+                                                                                          <~k, ~ke>)
+                                                                                 ) @ #vk.61 )
+                                                                            case TA_COMPLETE_C
+                                                                            solve( !KU( encaps(~k, pk(~ltk))
+                                                                                   ) @ #vk.49 )
+                                                                              case TA_RESPONSE_T
+                                                                              solve( !KU( encaps(~ke,
+                                                                                                 pk(~skCe))
+                                                                                     ) @ #vk.53 )
+                                                                                case TA_RESPONSE_T
+                                                                                solve( !KU( cert(pk(~skT),
+                                                                                                 sign(<
+                                                                                                       pk(~skT), 
+                                                                                                       $T, 
+                                                                                                       'terminal'
+                                                                                                      >,
+                                                                                                      ca_sk),
+                                                                                                 $T)
+                                                                                       ) @ #vk.75 )
+                                                                                  case CA_Sign_ltk
+                                                                                  solve( !KU( kdf(<'TCNF', 
+                                                                                                   ~r1.1>,
+                                                                                                  ~kTA.1)
+                                                                                         ) @ #vk.73 )
+                                                                                    case TA_RESPONSE_T
+                                                                                    solve( splitEqs(12) )
+                                                                                      case split_case_1
+                                                                                      solve( !KU( encaps(~kTA.1,
+                                                                                                         pk(~skT.2))
+                                                                                             ) @ #vk.90 )
+                                                                                        case TA_CHALLENGE_C
+                                                                                        solve( !KU( senc(<
+                                                                                                          cert(z,
+                                                                                                               sign(<
+                                                                                                                     z, 
+                                                                                                                     x.1, 
+                                                                                                                     'chip'
+                                                                                                                    >,
+                                                                                                                    ca_sk),
+                                                                                                               x.1), 
+                                                                                                          z.1, 
+                                                                                                          z.2
+                                                                                                         >,
+                                                                                                         kdf(<
+                                                                                                              'TENC', 
+                                                                                                              ~r1.1
+                                                                                                             >,
+                                                                                                             ~kTA.1))
+                                                                                               ) @ #vk.90 )
+                                                                                          case TA_CHALLENGE_C
+                                                                                          solve( !KU( kdf(<
+                                                                                                           'CNF', 
+                                                                                                           cert(pk(~skT),
+                                                                                                                sign(<
+                                                                                                                      pk(~skT), 
+                                                                                                                      $T, 
+                                                                                                                      'terminal'
+                                                                                                                     >,
+                                                                                                                     ca_sk),
+                                                                                                                $T), 
+                                                                                                           cert(pk(~skC),
+                                                                                                                sign(<
+                                                                                                                      pk(~skC), 
+                                                                                                                      $C, 
+                                                                                                                      'chip'
+                                                                                                                     >,
+                                                                                                                     ca_sk),
+                                                                                                                $C), 
+                                                                                                           ~r2.1, 
+                                                                                                           encaps(~k.1,
+                                                                                                                  pk(~skC)), 
+                                                                                                           pk(~skCe.1), 
+                                                                                                           encaps(~ke.1,
+                                                                                                                  pk(~skCe.1))
+                                                                                                          >,
+                                                                                                          <
+                                                                                                           ~k.1, 
+                                                                                                           ~ke.1
+                                                                                                          >)
+                                                                                                 ) @ #vk.77 )
+                                                                                            case TA_COMPLETE_C
+                                                                                            solve( !KU( encaps(~k.1,
+                                                                                                               pk(~skC))
+                                                                                                   ) @ #vk.76 )
+                                                                                              case TA_RESPONSE_T
+                                                                                              solve( !KU( encaps(~ke.1,
+                                                                                                                 pk(~skCe.1))
+                                                                                                     ) @ #vk.77 )
+                                                                                                case TA_RESPONSE_T
+                                                                                                solve( !KU( cert(pk(~ltk),
+                                                                                                                 sign(<
+                                                                                                                       pk(~ltk), 
+                                                                                                                       $C, 
+                                                                                                                       'chip'
+                                                                                                                      >,
+                                                                                                                      ca_sk),
+                                                                                                                 $C)
+                                                                                                       ) @ #vk.80 )
+                                                                                                  case CA_Sign_ltk
+                                                                                                  solve( !KU( pk(~skCe)
+                                                                                                         ) @ #vk.81 )
+                                                                                                    case TA_CHALLENGE_C
+                                                                                                    SOLVED // trace found
+                                                                                                  qed
+                                                                                                qed
+                                                                                              qed
+                                                                                            qed
+                                                                                          qed
+                                                                                        qed
+                                                                                      qed
+                                                                                    qed
+                                                                                  qed
+                                                                                qed
+                                                                              qed
+                                                                            qed
+                                                                          qed
+                                                                        qed
+                                                                      qed
+                                                                    qed
+                                                                  qed
+                                                                qed
+                                                              qed
+                                                            qed
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>,
+                    pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C_case_1
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           r2, skCe, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_2
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           r2, skCe, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>,
+                    pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T.1, iid>, id_c,
+                          cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>,
+                          <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.29 )
+            case TA_RESPONSE_T
+            solve( !KU( ~ke ) @ #vk.30 )
+              case TA_RESPONSE_T
+              solve( splitEqs(1) )
+                case split_case_1
+                solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2, 
+                                  pk(sk.1)>,
+                                 kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                       ) @ #vk.19 )
+                  case c_senc
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.28 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.37 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.41 )
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2, 
+                                  pk(sk.1)>,
+                                 kdf(<'TENC', r1>, z))
+                       ) @ #vk.19 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~r2 ) @ #vk.29 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  qed
+                next
+                  case c_senc
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.28 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.37 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.41 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>,
+                    pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C_case_1
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           r2, skCe, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.39 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.41 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.42 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.44 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            next
+              case split_case_2
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.39 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.41 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.42 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.44 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_2
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           r2, skCe, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.39 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.41 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.42 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.44 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            next
+              case split_case_2
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.39 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.41 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.42 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.44 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>,
+                    pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T.1, iid>, id_c,
+                          cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>,
+                          <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.29 )
+            case TA_RESPONSE_T
+            solve( !KU( ~ke ) @ #vk.30 )
+              case TA_RESPONSE_T
+              solve( splitEqs(1) )
+                case split_case_1
+                solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2, 
+                                  pk(sk.1)>,
+                                 kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                       ) @ #vk.19 )
+                  case c_senc
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.28 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.37 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.41 )
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2, 
+                                  pk(sk.1)>,
+                                 kdf(<'TENC', r1>, z))
+                       ) @ #vk.19 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~r2 ) @ #vk.29 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  qed
+                next
+                  case c_senc
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.28 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.37 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.41 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>,
+                    pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T.1, iid>, id_c,
+                          cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <k.1, encaps(~k, z)>,
+                          <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.29 )
+            case TA_RESPONSE_T
+            solve( !KU( ~ke ) @ #vk.30 )
+              case TA_RESPONSE_T
+              solve( splitEqs(1) )
+                case split_case_1
+                solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B), r2, 
+                                  pk(sk.1)>,
+                                 kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                       ) @ #vk.19 )
+                  case c_senc
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                         ) @ #vk.28 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.37 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.41 )
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B), r2, 
+                                  pk(sk.1)>,
+                                 kdf(<'TENC', r1>, z))
+                       ) @ #vk.19 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~r2 ) @ #vk.29 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  qed
+                next
+                  case c_senc
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                         ) @ #vk.28 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.33 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.37 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.41 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_1
+      by contradiction /* from formulas */
+    next
+      case TA_COMPLETE_C_case_2
+      by contradiction /* from formulas */
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>,
+                          pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                                 encaps(~ke, pkCe)>,
+                                <~k, ~ke>),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( TAResponseT( <$T, iid.1>, id_c.1,
+                                cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>,
+                                <~ke, encaps(~ke, pkCe)>, pkCe
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_1
+      solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z.1, z.2>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C_case_1
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, ~skCe,
+                                   kTMAC, kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            next
+              case TA_COMPLETE_C_case_2
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, ~skCe,
+                                   kTMAC, kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_2
+      solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z.1, z.2>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C_case_1
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, ~skCe,
+                                   kTMAC, kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            next
+              case TA_COMPLETE_C_case_2
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, ~skCe,
+                                   kTMAC, kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>,
+                          pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                                 encaps(~ke, pkCe)>,
+                                <~k, ~ke>),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( TAResponseT( <$T, iid.1>, id_c.1,
+                                cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>,
+                                <~ke, encaps(~ke, pkCe)>, pkCe
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_1
+      solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z.1, z.2>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C_case_1
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, ~skCe,
+                                   kTMAC, kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            next
+              case TA_COMPLETE_C_case_2
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, ~skCe,
+                                   kTMAC, kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_2
+      solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z.1, z.2>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C_case_1
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, ~skCe,
+                                   kTMAC, kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            next
+              case TA_COMPLETE_C_case_2
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, ~skCe,
+                                   kTMAC, kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_T
+    solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>,
+                        pkCe
+           ) ▶₁ #i )
+      case TA_RESPONSE_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                               cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                               encaps(~ke, pkCe)>,
+                              <~k, ~ke>),
+                          sid2, $T, 'terminal', B
+               ) @ #j )
+          case CA_FINISH_T
+          by contradiction /* from formulas */
+        qed
+      qed
+    qed
+  next
+    case TA_COMPLETE_C_case_1
+    solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+           ) ▶₁ #i )
+      case TA_CHALLENGE_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                 pk(~skCe), cipe>,
+                                <z.1, z.2>),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case TA_COMPLETE_C_case_1
+            by contradiction /* from formulas */
+          next
+            case TA_COMPLETE_C_case_2
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  next
+    case TA_COMPLETE_C_case_2
+    solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+           ) ▶₁ #i )
+      case TA_CHALLENGE_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                 pk(~skCe), cipe>,
+                                <z.1, z.2>),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case TA_COMPLETE_C_case_1
+            by contradiction /* from formulas */
+          next
+            case TA_COMPLETE_C_case_2
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>,
+                              <ke, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( splitEqs(2) )
+                  case split_case_1
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.5 )
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.39 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                        case TA_RESPONSE_T
+                        solve( splitEqs(5) )
+                          case split_case_1
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.23 )
+                            case c_kdf
+                            solve( !KU( ~k ) @ #vk.53 )
+                              case TA_RESPONSE_T
+                              solve( !KU( ~ke ) @ #vk.54 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.55 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.23 )
+                            case c_kdf
+                            solve( !KU( ~k ) @ #vk.53 )
+                              case TA_RESPONSE_T
+                              solve( !KU( ~ke ) @ #vk.54 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.55 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.43 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.46 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                            <~k, ~ke>)
+                                   ) @ #vk.25 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.50 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ke ) @ #vk.51 )
+                                  case TA_RESPONSE_T
+                                  solve( !KU( ~ltk ) @ #vk.52 )
+                                    case Corrupt_ltk
+                                    by contradiction /* from formulas */
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case split_case_2
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.5 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.16 )
+                      case c_kdf
+                      solve( !KU( ~r2 ) @ #vk.39 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~k ) @ #vk.41 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ke ) @ #vk.42 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.44 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.39 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                        case TA_RESPONSE_T
+                        solve( splitEqs(5) )
+                          case split_case_1
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.23 )
+                            case c_kdf
+                            solve( !KU( ~k ) @ #vk.53 )
+                              case TA_RESPONSE_T
+                              solve( !KU( ~ke ) @ #vk.54 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.55 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.23 )
+                            case c_kdf
+                            solve( !KU( ~k ) @ #vk.53 )
+                              case TA_RESPONSE_T
+                              solve( !KU( ~ke ) @ #vk.54 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.55 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.43 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.46 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                            <~k, ~ke>)
+                                   ) @ #vk.25 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.50 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ke ) @ #vk.51 )
+                                  case TA_RESPONSE_T
+                                  solve( !KU( ~ltk ) @ #vk.52 )
+                                    case Corrupt_ltk
+                                    by contradiction /* from formulas */
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case TA_COMPLETE_C_case_2
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>,
+                              <ke, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( splitEqs(2) )
+                  case split_case_1
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.5 )
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.39 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                        case TA_RESPONSE_T
+                        solve( splitEqs(5) )
+                          case split_case_1
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.23 )
+                            case c_kdf
+                            solve( !KU( ~k ) @ #vk.53 )
+                              case TA_RESPONSE_T
+                              solve( !KU( ~ke ) @ #vk.54 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.55 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.23 )
+                            case c_kdf
+                            solve( !KU( ~k ) @ #vk.53 )
+                              case TA_RESPONSE_T
+                              solve( !KU( ~ke ) @ #vk.54 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.55 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.43 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.46 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                            <~k, ~ke>)
+                                   ) @ #vk.25 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.50 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ke ) @ #vk.51 )
+                                  case TA_RESPONSE_T
+                                  solve( !KU( ~ltk ) @ #vk.52 )
+                                    case Corrupt_ltk
+                                    by contradiction /* from formulas */
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case split_case_2
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.5 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.16 )
+                      case c_kdf
+                      solve( !KU( ~r2 ) @ #vk.39 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~k ) @ #vk.41 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ke ) @ #vk.42 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.44 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.39 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                        case TA_RESPONSE_T
+                        solve( splitEqs(5) )
+                          case split_case_1
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.23 )
+                            case c_kdf
+                            solve( !KU( ~k ) @ #vk.53 )
+                              case TA_RESPONSE_T
+                              solve( !KU( ~ke ) @ #vk.54 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.55 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        next
+                          case split_case_2
+                          solve( !KU( kdf(<'CNF', 
+                                           cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                           encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                          <~k, ~ke>)
+                                 ) @ #vk.23 )
+                            case c_kdf
+                            solve( !KU( ~k ) @ #vk.53 )
+                              case TA_RESPONSE_T
+                              solve( !KU( ~ke ) @ #vk.54 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.55 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.43 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.46 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                            <~k, ~ke>)
+                                   ) @ #vk.25 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.50 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ke ) @ #vk.51 )
+                                  case TA_RESPONSE_T
+                                  solve( !KU( ~ltk ) @ #vk.52 )
+                                    case Corrupt_ltk
+                                    by contradiction /* from formulas */
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                              <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.40 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.42 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.43 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.45 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.40 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.42 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.43 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.45 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case TA_COMPLETE_C_case_2
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                              <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.40 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.42 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.43 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.45 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.40 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.42 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.43 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.45 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+       ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+      case CA_Sign_ltk
+      solve( !KU( ~iid ) @ #vk.13 )
+        case TA_CHALLENGE_C
+        solve( !KU( mac(<'CA', cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                         pk(~skCe), cipe>,
+                        kdf(<'TMAC', ~r1>, ~kTA))
+               ) @ #vk.6 )
+          case TA_RESPONSE_T
+          solve( splitEqs(0) )
+            case split_case_1
+            solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.16 )
+              case c_kdf
+              solve( !KU( ~kTA ) @ #vk.29 )
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.31 )
+                  case Corrupt_ltk
+                  solve( !KU( encaps(~kTA, pk(~skT)) ) @ #vk.25 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( senc(<
+                                      cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, pk(~skCe)
+                                     >,
+                                     kdf(<'TENC', ~r1>, ~kTA))
+                           ) @ #vk.27 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~r1 ) @ #vk.25 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                               ) @ #vk.24 )
+                          case CA_Sign_ltk
+                          solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.17 )
+                            case TA_RESPONSE_T
+                            solve( splitEqs(2) )
+                              case split_case_1
+                              solve( !KU( encaps(~kTA, pk(~skT.1)) ) @ #vk.37 )
+                                case TA_CHALLENGE_C
+                                solve( !KU( senc(<cert(z, sign(<z, x, 'chip'>, ca_sk), x), x.1>,
+                                                 kdf(<'TENC', ~r1>, ~kTA))
+                                       ) @ #vk.37 )
+                                  case c_senc
+                                  solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.39 )
+                                    case CA_Sign_ltk
+                                    solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.25 )
+                                      case TA_RESPONSE_T
+                                      solve( !KU( encaps(~ke, pk(~skCe)) ) @ #vk.28 )
+                                        case TA_RESPONSE_T
+                                        SOLVED // trace found
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !KU( cert(x, sign(<x, T, 'terminal'>, ca_sk), T) ) @ #vk.1 )
+      case CA_Sign_ltk
+      solve( !KU( senc(<cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z>,
+                       kdf(<'TENC', r1>, kTA))
+             ) @ #vk.11 )
+        case c_senc
+        solve( !KU( mac(<'CA', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                         cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z, cip, pk(skCe), cipe>,
+                        kdf(<'TMAC', r1>, kTA))
+               ) @ #vk.15 )
+          case c_mac
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                           cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z, cip, pk(skCe), cipe>,
+                          <z.1, z.2>)
+                 ) @ #vk.21 )
+            case c_kdf
+            solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.30 )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_3
+                solve( !KU( encaps(z.1, pk(~ltk.2)) ) @ #vk.23 )
+                  case c_encaps
+                  solve( !KU( decaps(cipe, skCe) ) @ #vk.39 )
+                    case c_decaps
+                    solve( !KU( kdf(<'TCNF', r1>, kTA) ) @ #vk.25 )
+                      case c_kdf
+                      solve( !KU( kdf(<'TENC', r1>, kTA) ) @ #vk.34 )
+                        case c_kdf
+                        solve( !KU( kdf(<'TMAC', r1>, kTA) ) @ #vk.37 )
+                          case c_kdf
+                          solve( !KU( pk(skCe) ) @ #vk.40 )
+                            case CA_Sign_ltk_case_1
+                            solve( !KU( ~ltk.3 ) @ #vk.38 )
+                              case Corrupt_ltk
+                              solve( !KU( pk(~ltk.2) ) @ #vk.43 )
+                                case CA_Sign_ltk
+                                SOLVED // trace found
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !Ltk( T, skT, 'terminal' ) ▶₂ #i )
+    case Generate_terminal_key_pair
+    solve( !KU( cert(x, sign(<x, $A, 'terminal'>, ca_sk), $A) ) @ #vk.1 )
+      case CA_Sign_ltk
+      solve( !KU( senc(<cert(x, sign(<x, C, 'chip'>, ca_sk), C), x.1>,
+                       kdf(<'TENC', r1>, z))
+             ) @ #vk.11 )
+        case c_senc
+        solve( !KU( mac(<'CA', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                         cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1, cip, z.2, cipe>,
+                        kdf(<'TMAC', r1>, z))
+               ) @ #vk.15 )
+          case c_mac
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                           cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1, cip, z.2, cipe>,
+                          <k, ke>)
+                 ) @ #vk.21 )
+            case c_kdf
+            solve( !KU( cert(x, sign(<x, C, 'chip'>, ca_sk), C) ) @ #vk.30 )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_4
+                solve( !KU( encaps(z, pk(~ltk.1)) ) @ #vk.21 )
+                  case c_encaps
+                  solve( !KU( kdf(<'TCNF', r1>, z) ) @ #vk.22 )
+                    case c_kdf
+                    solve( !KU( kdf(<'TENC', r1>, z) ) @ #vk.32 )
+                      case c_kdf
+                      solve( !KU( kdf(<'TMAC', r1>, z) ) @ #vk.35 )
+                        case c_kdf
+                        solve( !KU( pk(~ltk.1) ) @ #vk.42 )
+                          case CA_Sign_ltk
+                          SOLVED // trace found
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                              <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.40 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.42 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.43 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.45 )
+                          case Corrupt_ltk
+                          by solve( !KU( ~skCe ) @ #vk.46 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.40 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.42 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.43 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.45 )
+                          case Corrupt_ltk
+                          by solve( !KU( ~skCe ) @ #vk.46 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case TA_COMPLETE_C_case_2
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, skCe, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z.1, z.2>),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>,
+                              <z.2, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.40 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.42 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.43 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.45 )
+                          case Corrupt_ltk
+                          by solve( !KU( ~skCe ) @ #vk.46 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                <~k, ~ke>)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~r2 ) @ #vk.40 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~k ) @ #vk.42 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.43 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.45 )
+                          case Corrupt_ltk
+                          by solve( !KU( ~skCe ) @ #vk.46 )
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 1715.21s
+  
+  session_exist (exists-trace): verified (26 steps)
+  two_session_exist (exists-trace): verified (52 steps)
+  weak_agreement_C (all-traces): verified (12 steps)
+  weak_agreement_T (all-traces): verified (37 steps)
+  agreement_C (all-traces): verified (44 steps)
+  agreement_T (all-traces): verified (37 steps)
+  aliveness (all-traces): verified (39 steps)
+  session_uniqueness (all-traces): verified (64 steps)
+  consistency (all-traces): verified (116 steps)
+  key_secrecy (all-traces): verified (44 steps)
+  chip_hiding (all-traces): falsified - found trace (22 steps)
+  nonRepudiation_terminal (exists-trace): verified (18 steps)
+  nonRepudiation_chip (exists-trace): verified (15 steps)
+  pfs (all-traces): verified (44 steps)
+
+==============================================================================
diff --git a/results/45991739.err.PFS_ALL_FastSigPQEAC_TAMARIN b/results/45991739.err.PFS_ALL_FastSigPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..3b363a0b30e496b41053a8bd84ac85abf59b3883
--- /dev/null
+++ b/results/45991739.err.PFS_ALL_FastSigPQEAC_TAMARIN
@@ -0,0 +1,32 @@
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Open Chains] Too many chain goals, stopping precomputation. Open Chains limits (can be changed with -c=): 10
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 3/5
+[Open Chains] Too many chain goals, stopping precomputation. Open Chains limits (can be changed with -c=): 10
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 3/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991739.out.PFS_ALL_FastSigPQEAC_TAMARIN b/results/45991739.out.PFS_ALL_FastSigPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..03861b17a0c6103ef04bc68f59ee5a0901ff83c4
--- /dev/null
+++ b/results/45991739.out.PFS_ALL_FastSigPQEAC_TAMARIN
@@ -0,0 +1,5813 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory FastSigPQEAC begin
+
+// Function signature and definition of the equational theory E
+
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, decaps/2, encaps/2, fst/1, kdf/2, pair/2, pk/1, sign/2,
+           snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    decaps(encaps(k, pk(sk)), sk) = k,
+    fst(<x.1, x.2>) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [ !Pk( $A, pk(~ltk), 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [ Out( <certT, '1', 't'> ), Out( ~iid ), TAInitT( <$T, ~iid> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [
+   In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ), Fr( ~skCe ),
+   Fr( ~r2 ), !Cert( $C, certC, 'chip' )
+   ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, certC, ~r2, pk(~skCe), '2', 'c'> ), Out( ~iid ),
+   TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~skCe, ~r2 )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [
+     In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ), Fr( ~skCe ),
+     Fr( ~r2 ), !Cert( $C, certC, 'chip' )
+     ]
+    --[ Eq( z, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, certC, ~r2, pk(~skCe), '2', 'c'> ), Out( ~iid ),
+     TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~skCe, ~r2 )
+     ]
+    variants (modulo AC)
+    1. certT = certT.16
+       z     = verify(cert_sig(certT.16),
+                      <cert_pk(certT.16), cert_id(certT.16), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(x.17, sign(<x.17, x.18, 'terminal'>, ca_sk), x.18)
+       z     = true
+    
+    3. certT = cert(x.18, x.19, x.20)
+       z     = verify(x.19, <x.18, x.20, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, certC, r2, pkCe, '2', 'c'> ), TAInitT( <$T, iid> ),
+   !Ltk( $T, ~skT, 'terminal' ), !Cert( $T, certT, 'terminal' ), Fr( ~k ),
+   Fr( ~ke )
+   ]
+  --[ Eq( verify_cert(certC, 'chip'), true ) ]->
+   [
+   Out( <encaps(~k, cert_pk(certC)), encaps(~ke, pkCe), 
+         sign(<'TA', id_c, r1>, ~skT), 
+         sign(<'CA', certT, certC, r2, encaps(~k, cert_pk(certC)), pkCe, 
+               encaps(~ke, pkCe)>,
+              ~skT), 
+         '3', 't'>
+   ),
+   CAInitT( <$T, iid>, id_c, certC, r2, <~k, encaps(~k, cert_pk(certC))>,
+            <~ke, encaps(~ke, pkCe)>, pkCe
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_RESPONSE_T:
+     [
+     In( <id_c, r1, certC, r2, pkCe, '2', 'c'> ), TAInitT( <$T, iid> ),
+     !Ltk( $T, ~skT, 'terminal' ), !Cert( $T, certT, 'terminal' ), Fr( ~k ),
+     Fr( ~ke )
+     ]
+    --[ Eq( z.1, true ) ]->
+     [
+     Out( <encaps(~k, z), encaps(~ke, pkCe), sign(<'TA', id_c, r1>, ~skT), 
+           sign(<'CA', certT, certC, r2, encaps(~k, z), pkCe, encaps(~ke, pkCe)>,
+                ~skT), 
+           '3', 't'>
+     ),
+     CAInitT( <$T, iid>, id_c, certC, r2, <~k, encaps(~k, z)>,
+              <~ke, encaps(~ke, pkCe)>, pkCe
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.22
+       z     = cert_pk(certC.22)
+       z.1   = verify(cert_sig(certC.22),
+                      <cert_pk(certC.22), cert_id(certC.22), 'chip'>, pk(ca_sk))
+    
+    2. certC = cert(z.59, sign(<z.59, x.102, 'chip'>, ca_sk), x.102)
+       z     = z.59
+       z.1   = true
+    
+    3. certC = cert(z.60, x.103, x.104)
+       z     = z.60
+       z.1   = verify(x.103, <z.60, x.104, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_COMPLETE_C:
+   [
+   In( <cip, cipe, s1, s2, '3', 't'> ),
+   TAChallengeC( <$C, iid>, certT, id_c, r1, skCe, r2 ),
+   !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( verify(s1, <'TA', id_c, r1>, cert_pk(certT)), true ),
+  Eq( verify(s2, <'CA', certT, certC, r2, cip, pk(skCe), cipe>,
+             cert_pk(certT)),
+      true
+  ),
+  CompletedTA( $C, iid, cert_id(certT) ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>,
+                 <decaps(cip, ~skC), decaps(cipe, skCe)>),
+             <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <
+         kdf(<'CNF', certT, certC, r2, cip, pk(skCe), cipe>,
+             <decaps(cip, ~skC), decaps(cipe, skCe)>), 
+         '4', 'c'>
+   ),
+   TACompleteC( <$C, iid>, certT, id_c, r1, skCe, r2 )
+   ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [
+     In( <cip, cipe, s1, s2, '3', 't'> ),
+     TAChallengeC( <$C, iid>, certT, id_c, r1, skCe, r2 ),
+     !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( z.2, true ), Eq( z.3, true ), CompletedTA( $C, iid, z.4 ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>),
+               <certT, certC, r2, cip, pk(skCe), cipe>, $C, 'chip', z.4
+    )
+    ]->
+     [
+     Out( <kdf(<'CNF', certT, certC, r2, cip, pk(skCe), cipe>, <z, z.1>), 
+           '4', 'c'>
+     ),
+     TACompleteC( <$C, iid>, certT, id_c, r1, skCe, r2 )
+     ]
+    variants (modulo AC)
+     1. ~skC  = ~skC.37
+        certC = certC.38
+        certT = certT.39
+        cip   = cip.40
+        cipe  = cipe.41
+        id_c  = id_c.42
+        r1    = r1.44
+        r2    = r2.45
+        s1    = s1.46
+        s2    = s2.47
+        skCe  = skCe.48
+        z     = decaps(cip.40, ~skC.37)
+        z.1   = decaps(cipe.41, skCe.48)
+        z.2   = verify(s1.46, <'TA', id_c.42, r1.44>, cert_pk(certT.39))
+        z.3   = verify(s2.47,
+                       <'CA', certT.39, certC.38, r2.45, cip.40, pk(skCe.48), cipe.41>,
+                       cert_pk(certT.39))
+        z.4   = cert_id(certT.39)
+    
+     2. ~skC  = ~skC.42
+        certC = certC.43
+        certT = certT.44
+        cip   = encaps(z.58, pk(~skC.42))
+        cipe  = cipe.46
+        id_c  = id_c.47
+        r1    = r1.49
+        r2    = r2.50
+        s1    = s1.51
+        s2    = s2.52
+        skCe  = skCe.53
+        z     = z.58
+        z.1   = decaps(cipe.46, skCe.53)
+        z.2   = verify(s1.51, <'TA', id_c.47, r1.49>, cert_pk(certT.44))
+        z.3   = verify(s2.52,
+                       <'CA', certT.44, certC.43, r2.50, encaps(z.58, pk(~skC.42)), 
+                        pk(skCe.53), cipe.46>,
+                       cert_pk(certT.44))
+        z.4   = cert_id(certT.44)
+    
+     3. ~skC  = ~skC.43
+        certC = certC.44
+        certT = certT.45
+        cip   = cip.46
+        cipe  = encaps(z.60, pk(skCe.54))
+        id_c  = id_c.48
+        r1    = r1.50
+        r2    = r2.51
+        s1    = s1.52
+        s2    = s2.53
+        skCe  = skCe.54
+        z     = decaps(cip.46, ~skC.43)
+        z.1   = z.60
+        z.2   = verify(s1.52, <'TA', id_c.48, r1.50>, cert_pk(certT.45))
+        z.3   = verify(s2.53,
+                       <'CA', certT.45, certC.44, r2.51, cip.46, pk(skCe.54), 
+                        encaps(z.60, pk(skCe.54))>,
+                       cert_pk(certT.45))
+        z.4   = cert_id(certT.45)
+    
+     4. ~skC  = ~skC.43
+        certC = certC.44
+        certT = certT.45
+        cip   = encaps(z.59, pk(~skC.43))
+        cipe  = encaps(z.60, pk(skCe.54))
+        id_c  = id_c.48
+        r1    = r1.50
+        r2    = r2.51
+        s1    = s1.52
+        s2    = s2.53
+        skCe  = skCe.54
+        z     = z.59
+        z.1   = z.60
+        z.2   = verify(s1.52, <'TA', id_c.48, r1.50>, cert_pk(certT.45))
+        z.3   = verify(s2.53,
+                       <'CA', certT.45, certC.44, r2.51, encaps(z.59, pk(~skC.43)), 
+                        pk(skCe.54), encaps(z.60, pk(skCe.54))>,
+                       cert_pk(certT.45))
+        z.4   = cert_id(certT.45)
+    
+     5. ~skC  = ~skC.171
+        certC = certC.172
+        certT = cert(x.338, x.339, z.193)
+        cip   = cip.174
+        cipe  = cipe.175
+        id_c  = id_c.176
+        r1    = r1.178
+        r2    = r2.179
+        s1    = s1.180
+        s2    = s2.181
+        skCe  = skCe.182
+        z     = decaps(cip.174, ~skC.171)
+        z.1   = decaps(cipe.175, skCe.182)
+        z.2   = verify(s1.180, <'TA', id_c.176, r1.178>, x.338)
+        z.3   = verify(s2.181,
+                       <'CA', cert(x.338, x.339, z.193), certC.172, r2.179, cip.174, 
+                        pk(skCe.182), cipe.175>,
+                       x.338)
+        z.4   = z.193
+    
+     6. ~skC  = ~skC.171
+        certC = certC.172
+        certT = cert(x.338, x.339, z.193)
+        cip   = cip.174
+        cipe  = encaps(z.188, pk(skCe.182))
+        id_c  = id_c.176
+        r1    = r1.178
+        r2    = r2.179
+        s1    = s1.180
+        s2    = s2.181
+        skCe  = skCe.182
+        z     = decaps(cip.174, ~skC.171)
+        z.1   = z.188
+        z.2   = verify(s1.180, <'TA', id_c.176, r1.178>, x.338)
+        z.3   = verify(s2.181,
+                       <'CA', cert(x.338, x.339, z.193), certC.172, r2.179, cip.174, 
+                        pk(skCe.182), encaps(z.188, pk(skCe.182))>,
+                       x.338)
+        z.4   = z.193
+    
+     7. ~skC  = ~skC.171
+        certC = certC.172
+        certT = cert(pk(x.338), x.339, z.193)
+        cip   = cip.174
+        cipe  = cipe.175
+        id_c  = id_c.176
+        r1    = r1.178
+        r2    = r2.179
+        s1    = sign(<'TA', id_c.176, r1.178>, x.338)
+        s2    = s2.181
+        skCe  = skCe.182
+        z     = decaps(cip.174, ~skC.171)
+        z.1   = decaps(cipe.175, skCe.182)
+        z.2   = true
+        z.3   = verify(s2.181,
+                       <'CA', cert(pk(x.338), x.339, z.193), certC.172, r2.179, cip.174, 
+                        pk(skCe.182), cipe.175>,
+                       pk(x.338))
+        z.4   = z.193
+    
+     8. ~skC  = ~skC.171
+        certC = certC.172
+        certT = cert(pk(x.338), x.339, z.193)
+        cip   = cip.174
+        cipe  = encaps(z.188, pk(skCe.182))
+        id_c  = id_c.176
+        r1    = r1.178
+        r2    = r2.179
+        s1    = sign(<'TA', id_c.176, r1.178>, x.338)
+        s2    = s2.181
+        skCe  = skCe.182
+        z     = decaps(cip.174, ~skC.171)
+        z.1   = z.188
+        z.2   = true
+        z.3   = verify(s2.181,
+                       <'CA', cert(pk(x.338), x.339, z.193), certC.172, r2.179, cip.174, 
+                        pk(skCe.182), encaps(z.188, pk(skCe.182))>,
+                       pk(x.338))
+        z.4   = z.193
+    
+     9. ~skC  = ~skC.172
+        certC = certC.173
+        certT = cert(pk(x.340), x.341, z.194)
+        cip   = cip.175
+        cipe  = cipe.176
+        id_c  = id_c.177
+        r1    = r1.179
+        r2    = r2.180
+        s1    = s1.181
+        s2    = sign(<'CA', cert(pk(x.340), x.341, z.194), certC.173, r2.180, 
+                      cip.175, pk(skCe.183), cipe.176>,
+                     x.340)
+        skCe  = skCe.183
+        z     = decaps(cip.175, ~skC.172)
+        z.1   = decaps(cipe.176, skCe.183)
+        z.2   = verify(s1.181, <'TA', id_c.177, r1.179>, pk(x.340))
+        z.3   = true
+        z.4   = z.194
+    
+    10. ~skC  = ~skC.172
+        certC = certC.173
+        certT = cert(pk(x.340), x.341, z.194)
+        cip   = cip.175
+        cipe  = cipe.176
+        id_c  = id_c.177
+        r1    = r1.179
+        r2    = r2.180
+        s1    = sign(<'TA', id_c.177, r1.179>, x.340)
+        s2    = sign(<'CA', cert(pk(x.340), x.341, z.194), certC.173, r2.180, 
+                      cip.175, pk(skCe.183), cipe.176>,
+                     x.340)
+        skCe  = skCe.183
+        z     = decaps(cip.175, ~skC.172)
+        z.1   = decaps(cipe.176, skCe.183)
+        z.2   = true
+        z.3   = true
+        z.4   = z.194
+    
+    11. ~skC  = ~skC.172
+        certC = certC.173
+        certT = cert(pk(x.340), x.341, z.194)
+        cip   = cip.175
+        cipe  = encaps(z.189, pk(skCe.183))
+        id_c  = id_c.177
+        r1    = r1.179
+        r2    = r2.180
+        s1    = s1.181
+        s2    = sign(<'CA', cert(pk(x.340), x.341, z.194), certC.173, r2.180, 
+                      cip.175, pk(skCe.183), encaps(z.189, pk(skCe.183))>,
+                     x.340)
+        skCe  = skCe.183
+        z     = decaps(cip.175, ~skC.172)
+        z.1   = z.189
+        z.2   = verify(s1.181, <'TA', id_c.177, r1.179>, pk(x.340))
+        z.3   = true
+        z.4   = z.194
+    
+    12. ~skC  = ~skC.172
+        certC = certC.173
+        certT = cert(pk(x.340), x.341, z.194)
+        cip   = cip.175
+        cipe  = encaps(z.189, pk(skCe.183))
+        id_c  = id_c.177
+        r1    = r1.179
+        r2    = r2.180
+        s1    = sign(<'TA', id_c.177, r1.179>, x.340)
+        s2    = sign(<'CA', cert(pk(x.340), x.341, z.194), certC.173, r2.180, 
+                      cip.175, pk(skCe.183), encaps(z.189, pk(skCe.183))>,
+                     x.340)
+        skCe  = skCe.183
+        z     = decaps(cip.175, ~skC.172)
+        z.1   = z.189
+        z.2   = true
+        z.3   = true
+        z.4   = z.194
+    
+    13. ~skC  = ~skC.173
+        certC = certC.174
+        certT = cert(x.342, x.343, z.195)
+        cip   = encaps(z.189, pk(~skC.173))
+        cipe  = cipe.177
+        id_c  = id_c.178
+        r1    = r1.180
+        r2    = r2.181
+        s1    = s1.182
+        s2    = s2.183
+        skCe  = skCe.184
+        z     = z.189
+        z.1   = decaps(cipe.177, skCe.184)
+        z.2   = verify(s1.182, <'TA', id_c.178, r1.180>, x.342)
+        z.3   = verify(s2.183,
+                       <'CA', cert(x.342, x.343, z.195), certC.174, r2.181, 
+                        encaps(z.189, pk(~skC.173)), pk(skCe.184), cipe.177>,
+                       x.342)
+        z.4   = z.195
+    
+    14. ~skC  = ~skC.173
+        certC = certC.174
+        certT = cert(x.342, x.343, z.195)
+        cip   = encaps(z.189, pk(~skC.173))
+        cipe  = encaps(z.190, pk(skCe.184))
+        id_c  = id_c.178
+        r1    = r1.180
+        r2    = r2.181
+        s1    = s1.182
+        s2    = s2.183
+        skCe  = skCe.184
+        z     = z.189
+        z.1   = z.190
+        z.2   = verify(s1.182, <'TA', id_c.178, r1.180>, x.342)
+        z.3   = verify(s2.183,
+                       <'CA', cert(x.342, x.343, z.195), certC.174, r2.181, 
+                        encaps(z.189, pk(~skC.173)), pk(skCe.184), encaps(z.190, pk(skCe.184))>,
+                       x.342)
+        z.4   = z.195
+    
+    15. ~skC  = ~skC.173
+        certC = certC.174
+        certT = cert(pk(x.342), x.343, z.195)
+        cip   = encaps(z.189, pk(~skC.173))
+        cipe  = cipe.177
+        id_c  = id_c.178
+        r1    = r1.180
+        r2    = r2.181
+        s1    = s1.182
+        s2    = sign(<'CA', cert(pk(x.342), x.343, z.195), certC.174, r2.181, 
+                      encaps(z.189, pk(~skC.173)), pk(skCe.184), cipe.177>,
+                     x.342)
+        skCe  = skCe.184
+        z     = z.189
+        z.1   = decaps(cipe.177, skCe.184)
+        z.2   = verify(s1.182, <'TA', id_c.178, r1.180>, pk(x.342))
+        z.3   = true
+        z.4   = z.195
+    
+    16. ~skC  = ~skC.173
+        certC = certC.174
+        certT = cert(pk(x.342), x.343, z.195)
+        cip   = encaps(z.189, pk(~skC.173))
+        cipe  = cipe.177
+        id_c  = id_c.178
+        r1    = r1.180
+        r2    = r2.181
+        s1    = sign(<'TA', id_c.178, r1.180>, x.342)
+        s2    = s2.183
+        skCe  = skCe.184
+        z     = z.189
+        z.1   = decaps(cipe.177, skCe.184)
+        z.2   = true
+        z.3   = verify(s2.183,
+                       <'CA', cert(pk(x.342), x.343, z.195), certC.174, r2.181, 
+                        encaps(z.189, pk(~skC.173)), pk(skCe.184), cipe.177>,
+                       pk(x.342))
+        z.4   = z.195
+    
+    17. ~skC  = ~skC.173
+        certC = certC.174
+        certT = cert(pk(x.342), x.343, z.195)
+        cip   = encaps(z.189, pk(~skC.173))
+        cipe  = cipe.177
+        id_c  = id_c.178
+        r1    = r1.180
+        r2    = r2.181
+        s1    = sign(<'TA', id_c.178, r1.180>, x.342)
+        s2    = sign(<'CA', cert(pk(x.342), x.343, z.195), certC.174, r2.181, 
+                      encaps(z.189, pk(~skC.173)), pk(skCe.184), cipe.177>,
+                     x.342)
+        skCe  = skCe.184
+        z     = z.189
+        z.1   = decaps(cipe.177, skCe.184)
+        z.2   = true
+        z.3   = true
+        z.4   = z.195
+    
+    18. ~skC  = ~skC.173
+        certC = certC.174
+        certT = cert(pk(x.342), x.343, z.195)
+        cip   = encaps(z.189, pk(~skC.173))
+        cipe  = encaps(z.190, pk(skCe.184))
+        id_c  = id_c.178
+        r1    = r1.180
+        r2    = r2.181
+        s1    = s1.182
+        s2    = sign(<'CA', cert(pk(x.342), x.343, z.195), certC.174, r2.181, 
+                      encaps(z.189, pk(~skC.173)), pk(skCe.184), encaps(z.190, pk(skCe.184))>,
+                     x.342)
+        skCe  = skCe.184
+        z     = z.189
+        z.1   = z.190
+        z.2   = verify(s1.182, <'TA', id_c.178, r1.180>, pk(x.342))
+        z.3   = true
+        z.4   = z.195
+    
+    19. ~skC  = ~skC.173
+        certC = certC.174
+        certT = cert(pk(x.342), x.343, z.195)
+        cip   = encaps(z.189, pk(~skC.173))
+        cipe  = encaps(z.190, pk(skCe.184))
+        id_c  = id_c.178
+        r1    = r1.180
+        r2    = r2.181
+        s1    = sign(<'TA', id_c.178, r1.180>, x.342)
+        s2    = s2.183
+        skCe  = skCe.184
+        z     = z.189
+        z.1   = z.190
+        z.2   = true
+        z.3   = verify(s2.183,
+                       <'CA', cert(pk(x.342), x.343, z.195), certC.174, r2.181, 
+                        encaps(z.189, pk(~skC.173)), pk(skCe.184), encaps(z.190, pk(skCe.184))>,
+                       pk(x.342))
+        z.4   = z.195
+    
+    20. ~skC  = ~skC.173
+        certC = certC.174
+        certT = cert(pk(x.342), x.343, z.195)
+        cip   = encaps(z.189, pk(~skC.173))
+        cipe  = encaps(z.190, pk(skCe.184))
+        id_c  = id_c.178
+        r1    = r1.180
+        r2    = r2.181
+        s1    = sign(<'TA', id_c.178, r1.180>, x.342)
+        s2    = sign(<'CA', cert(pk(x.342), x.343, z.195), certC.174, r2.181, 
+                      encaps(z.189, pk(~skC.173)), pk(skCe.184), encaps(z.190, pk(skCe.184))>,
+                     x.342)
+        skCe  = skCe.184
+        z     = z.189
+        z.1   = z.190
+        z.2   = true
+        z.3   = true
+        z.4   = z.195
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <kCNF_C, '4', 'c'> ),
+   CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>), kCNF_C ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>),
+             <certT, certC, r2, cip, pkCe, cipe>, $T, 'terminal', cert_id(certC)
+  ),
+  Finished( <certT, certC, r2, cip, pkCe, cipe> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T,
+              kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+   ),
+   !SessionReveal( <certT, certC, r2, cip, pkCe, cipe>,
+                   kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <kCNF_C, '4', 'c'> ),
+     CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>), kCNF_C ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>),
+               <certT, certC, r2, cip, pkCe, cipe>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, r2, cip, pkCe, cipe> )
+    ]->
+     [
+     CAFinishT( z, $T,
+                kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+     ),
+     !SessionReveal( <certT, certC, r2, cip, pkCe, cipe>,
+                     kdf(<'KEY', certT, certC, r2, cip, pkCe, cipe>, <k, ke>)
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.18
+       z     = cert_id(certC.18)
+    
+    2. certC = cert(x.44, x.45, z.31)
+       z     = z.31
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, IDc, r1, sT, certC, r2, pkCe, cip, sC, cipe, kCNF> ),
+   In( skCe ), !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(certC) ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(sT, <'TA', IDc, r1>, cert_pk(certT)), true ),
+  Eq( verify(sC, <'CA', certT, certC, r2, cip, pkCe, cipe>,
+             cert_pk(certT)),
+      true
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>,
+          <decaps(cip, skC), decaps(cipe, skCe)>)
+  ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, IDc, r1, sT, certC, r2, pkCe, cip, sC, cipe, kCNF> ),
+     In( skCe ), !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( z.1, true ), Eq( z.2, true ), Eq( z.3, true ),
+    Eq( z.4, true ),
+    Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <z.5, z.6>) ),
+    ValidTrans( C, 'chip', z.7 )
+    ]->
+     [ ]
+    variants (modulo AC)
+      1. IDc   = IDc.38
+         certC = certC.39
+         certT = certT.40
+         cip   = cip.41
+         cipe  = cipe.42
+         pkCe  = pkCe.44
+         r1    = r1.45
+         r2    = r2.46
+         sC    = sC.47
+         sT    = sT.48
+         skC   = skC.49
+         skCe  = skCe.50
+         z     = cert_id(certC.39)
+         z.1   = verify(cert_sig(certT.40),
+                        <cert_pk(certT.40), cert_id(certT.40), 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.39),
+                        <cert_pk(certC.39), cert_id(certC.39), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.48, <'TA', IDc.38, r1.45>, cert_pk(certT.40))
+         z.4   = verify(sC.47,
+                        <'CA', certT.40, certC.39, r2.46, cip.41, pkCe.44, cipe.42>,
+                        cert_pk(certT.40))
+         z.5   = decaps(cip.41, skC.49)
+         z.6   = decaps(cipe.42, skCe.50)
+         z.7   = cert_id(certT.40)
+    
+      2. IDc   = IDc.46
+         certC = certC.47
+         certT = certT.48
+         cip   = encaps(z.66, pk(skC.57))
+         cipe  = cipe.50
+         pkCe  = pkCe.52
+         r1    = r1.53
+         r2    = r2.54
+         sC    = sC.55
+         sT    = sT.56
+         skC   = skC.57
+         skCe  = skCe.58
+         z     = cert_id(certC.47)
+         z.1   = verify(cert_sig(certT.48),
+                        <cert_pk(certT.48), cert_id(certT.48), 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.47),
+                        <cert_pk(certC.47), cert_id(certC.47), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.56, <'TA', IDc.46, r1.53>, cert_pk(certT.48))
+         z.4   = verify(sC.55,
+                        <'CA', certT.48, certC.47, r2.54, encaps(z.66, pk(skC.57)), pkCe.52, 
+                         cipe.50>,
+                        cert_pk(certT.48))
+         z.5   = z.66
+         z.6   = decaps(cipe.50, skCe.58)
+         z.7   = cert_id(certT.48)
+    
+      3. IDc   = IDc.47
+         certC = certC.48
+         certT = certT.49
+         cip   = cip.50
+         cipe  = encaps(z.68, pk(skCe.59))
+         pkCe  = pkCe.53
+         r1    = r1.54
+         r2    = r2.55
+         sC    = sC.56
+         sT    = sT.57
+         skC   = skC.58
+         skCe  = skCe.59
+         z     = cert_id(certC.48)
+         z.1   = verify(cert_sig(certT.49),
+                        <cert_pk(certT.49), cert_id(certT.49), 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.48),
+                        <cert_pk(certC.48), cert_id(certC.48), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.57, <'TA', IDc.47, r1.54>, cert_pk(certT.49))
+         z.4   = verify(sC.56,
+                        <'CA', certT.49, certC.48, r2.55, cip.50, pkCe.53, 
+                         encaps(z.68, pk(skCe.59))>,
+                        cert_pk(certT.49))
+         z.5   = decaps(cip.50, skC.58)
+         z.6   = z.68
+         z.7   = cert_id(certT.49)
+    
+      4. IDc   = IDc.47
+         certC = certC.48
+         certT = certT.49
+         cip   = encaps(z.67, pk(skC.58))
+         cipe  = encaps(z.68, pk(skCe.59))
+         pkCe  = pkCe.53
+         r1    = r1.54
+         r2    = r2.55
+         sC    = sC.56
+         sT    = sT.57
+         skC   = skC.58
+         skCe  = skCe.59
+         z     = cert_id(certC.48)
+         z.1   = verify(cert_sig(certT.49),
+                        <cert_pk(certT.49), cert_id(certT.49), 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.48),
+                        <cert_pk(certC.48), cert_id(certC.48), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.57, <'TA', IDc.47, r1.54>, cert_pk(certT.49))
+         z.4   = verify(sC.56,
+                        <'CA', certT.49, certC.48, r2.55, encaps(z.67, pk(skC.58)), pkCe.53, 
+                         encaps(z.68, pk(skCe.59))>,
+                        cert_pk(certT.49))
+         z.5   = z.67
+         z.6   = z.68
+         z.7   = cert_id(certT.49)
+    
+      5. IDc   = IDc.49
+         certC = certC.50
+         certT = cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71)
+         cip   = cip.52
+         cipe  = cipe.53
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = cert_id(certC.50)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.50),
+                        <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, x.95)
+         z.4   = verify(sC.58,
+                        <'CA', cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71), 
+                         certC.50, r2.57, cip.52, pkCe.55, cipe.53>,
+                        x.95)
+         z.5   = decaps(cip.52, skC.60)
+         z.6   = decaps(cipe.53, skCe.61)
+         z.7   = z.71
+    
+      6. IDc   = IDc.49
+         certC = certC.50
+         certT = cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71)
+         cip   = cip.52
+         cipe  = encaps(z.70, pk(skCe.61))
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = cert_id(certC.50)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.50),
+                        <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, x.95)
+         z.4   = verify(sC.58,
+                        <'CA', cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71), 
+                         certC.50, r2.57, cip.52, pkCe.55, encaps(z.70, pk(skCe.61))>,
+                        x.95)
+         z.5   = decaps(cip.52, skC.60)
+         z.6   = z.70
+         z.7   = z.71
+    
+      7. IDc   = IDc.49
+         certC = certC.50
+         certT = cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71)
+         cip   = encaps(z.69, pk(skC.60))
+         cipe  = cipe.53
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = cert_id(certC.50)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.50),
+                        <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, x.95)
+         z.4   = verify(sC.58,
+                        <'CA', cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71), 
+                         certC.50, r2.57, encaps(z.69, pk(skC.60)), pkCe.55, cipe.53>,
+                        x.95)
+         z.5   = z.69
+         z.6   = decaps(cipe.53, skCe.61)
+         z.7   = z.71
+    
+      8. IDc   = IDc.49
+         certC = certC.50
+         certT = cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71)
+         cip   = encaps(z.69, pk(skC.60))
+         cipe  = encaps(z.70, pk(skCe.61))
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = cert_id(certC.50)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.50),
+                        <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, x.95)
+         z.4   = verify(sC.58,
+                        <'CA', cert(x.95, sign(<x.95, z.71, 'terminal'>, ca_sk), z.71), 
+                         certC.50, r2.57, encaps(z.69, pk(skC.60)), pkCe.55, 
+                         encaps(z.70, pk(skCe.61))>,
+                        x.95)
+         z.5   = z.69
+         z.6   = z.70
+         z.7   = z.71
+    
+      9. IDc   = IDc.49
+         certC = cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63)
+         certT = certT.51
+         cip   = cip.52
+         cipe  = cipe.53
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = z.63
+         z.1   = verify(cert_sig(certT.51),
+                        <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, cert_pk(certT.51))
+         z.4   = verify(sC.58,
+                        <'CA', certT.51, cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63), 
+                         r2.57, cip.52, pkCe.55, cipe.53>,
+                        cert_pk(certT.51))
+         z.5   = decaps(cip.52, skC.60)
+         z.6   = decaps(cipe.53, skCe.61)
+         z.7   = cert_id(certT.51)
+    
+     10. IDc   = IDc.49
+         certC = cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63)
+         certT = certT.51
+         cip   = cip.52
+         cipe  = encaps(z.70, pk(skCe.61))
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = z.63
+         z.1   = verify(cert_sig(certT.51),
+                        <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, cert_pk(certT.51))
+         z.4   = verify(sC.58,
+                        <'CA', certT.51, cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63), 
+                         r2.57, cip.52, pkCe.55, encaps(z.70, pk(skCe.61))>,
+                        cert_pk(certT.51))
+         z.5   = decaps(cip.52, skC.60)
+         z.6   = z.70
+         z.7   = cert_id(certT.51)
+    
+     11. IDc   = IDc.49
+         certC = cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63)
+         certT = certT.51
+         cip   = encaps(z.69, pk(skC.60))
+         cipe  = cipe.53
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = z.63
+         z.1   = verify(cert_sig(certT.51),
+                        <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, cert_pk(certT.51))
+         z.4   = verify(sC.58,
+                        <'CA', certT.51, cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63), 
+                         r2.57, encaps(z.69, pk(skC.60)), pkCe.55, cipe.53>,
+                        cert_pk(certT.51))
+         z.5   = z.69
+         z.6   = decaps(cipe.53, skCe.61)
+         z.7   = cert_id(certT.51)
+    
+     12. IDc   = IDc.49
+         certC = cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63)
+         certT = certT.51
+         cip   = encaps(z.69, pk(skC.60))
+         cipe  = encaps(z.70, pk(skCe.61))
+         pkCe  = pkCe.55
+         r1    = r1.56
+         r2    = r2.57
+         sC    = sC.58
+         sT    = sT.59
+         skC   = skC.60
+         skCe  = skCe.61
+         z     = z.63
+         z.1   = verify(cert_sig(certT.51),
+                        <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.59, <'TA', IDc.49, r1.56>, cert_pk(certT.51))
+         z.4   = verify(sC.58,
+                        <'CA', certT.51, cert(x.95, sign(<x.95, z.63, 'chip'>, ca_sk), z.63), 
+                         r2.57, encaps(z.69, pk(skC.60)), pkCe.55, encaps(z.70, pk(skCe.61))>,
+                        cert_pk(certT.51))
+         z.5   = z.69
+         z.6   = z.70
+         z.7   = cert_id(certT.51)
+    
+     13. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(x.96, x.97, z.72)
+         cip   = cip.53
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = verify(x.97, <x.96, z.72, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, x.96)
+         z.4   = verify(sC.59,
+                        <'CA', cert(x.96, x.97, z.72), certC.51, r2.58, cip.53, pkCe.56, cipe.54
+                        >,
+                        x.96)
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = z.72
+    
+     14. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(x.96, x.97, z.72)
+         cip   = cip.53
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = verify(x.97, <x.96, z.72, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, x.96)
+         z.4   = verify(sC.59,
+                        <'CA', cert(x.96, x.97, z.72), certC.51, r2.58, cip.53, pkCe.56, 
+                         encaps(z.71, pk(skCe.62))>,
+                        x.96)
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = z.71
+         z.7   = z.72
+    
+     15. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(x.96, x.97, z.72)
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = verify(x.97, <x.96, z.72, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, x.96)
+         z.4   = verify(sC.59,
+                        <'CA', cert(x.96, x.97, z.72), certC.51, r2.58, 
+                         encaps(z.70, pk(skC.61)), pkCe.56, cipe.54>,
+                        x.96)
+         z.5   = z.70
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = z.72
+    
+     16. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(x.96, x.97, z.72)
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = verify(x.97, <x.96, z.72, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, x.96)
+         z.4   = verify(sC.59,
+                        <'CA', cert(x.96, x.97, z.72), certC.51, r2.58, 
+                         encaps(z.70, pk(skC.61)), pkCe.56, encaps(z.71, pk(skCe.62))>,
+                        x.96)
+         z.5   = z.70
+         z.6   = z.71
+         z.7   = z.72
+    
+     17. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72)
+         cip   = cip.53
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sign(<'CA', 
+                       cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72), 
+                       certC.51, r2.58, cip.53, pkCe.56, cipe.54>,
+                      x.97)
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, pk(x.97))
+         z.4   = true
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = z.72
+    
+     18. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72)
+         cip   = cip.53
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sign(<'CA', 
+                       cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72), 
+                       certC.51, r2.58, cip.53, pkCe.56, encaps(z.71, pk(skCe.62))>,
+                      x.97)
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, pk(x.97))
+         z.4   = true
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = z.71
+         z.7   = z.72
+    
+     19. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72)
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sign(<'CA', 
+                       cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72), 
+                       certC.51, r2.58, encaps(z.70, pk(skC.61)), pkCe.56, cipe.54>,
+                      x.97)
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, pk(x.97))
+         z.4   = true
+         z.5   = z.70
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = z.72
+    
+     20. IDc   = IDc.50
+         certC = certC.51
+         certT = cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72)
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sign(<'CA', 
+                       cert(pk(x.97), sign(<pk(x.97), z.72, 'terminal'>, ca_sk), z.72), 
+                       certC.51, r2.58, encaps(z.70, pk(skC.61)), pkCe.56, 
+                       encaps(z.71, pk(skCe.62))>,
+                      x.97)
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = cert_id(certC.51)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.51),
+                        <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, pk(x.97))
+         z.4   = true
+         z.5   = z.70
+         z.6   = z.71
+         z.7   = z.72
+    
+     21. IDc   = IDc.50
+         certC = cert(x.96, x.97, z.64)
+         certT = certT.52
+         cip   = cip.53
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = z.64
+         z.1   = verify(cert_sig(certT.52),
+                        <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.97, <x.96, z.64, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, cert_pk(certT.52))
+         z.4   = verify(sC.59,
+                        <'CA', certT.52, cert(x.96, x.97, z.64), r2.58, cip.53, pkCe.56, cipe.54
+                        >,
+                        cert_pk(certT.52))
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = cert_id(certT.52)
+    
+     22. IDc   = IDc.50
+         certC = cert(x.96, x.97, z.64)
+         certT = certT.52
+         cip   = cip.53
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = z.64
+         z.1   = verify(cert_sig(certT.52),
+                        <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.97, <x.96, z.64, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, cert_pk(certT.52))
+         z.4   = verify(sC.59,
+                        <'CA', certT.52, cert(x.96, x.97, z.64), r2.58, cip.53, pkCe.56, 
+                         encaps(z.71, pk(skCe.62))>,
+                        cert_pk(certT.52))
+         z.5   = decaps(cip.53, skC.61)
+         z.6   = z.71
+         z.7   = cert_id(certT.52)
+    
+     23. IDc   = IDc.50
+         certC = cert(x.96, x.97, z.64)
+         certT = certT.52
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = cipe.54
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = z.64
+         z.1   = verify(cert_sig(certT.52),
+                        <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.97, <x.96, z.64, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, cert_pk(certT.52))
+         z.4   = verify(sC.59,
+                        <'CA', certT.52, cert(x.96, x.97, z.64), r2.58, 
+                         encaps(z.70, pk(skC.61)), pkCe.56, cipe.54>,
+                        cert_pk(certT.52))
+         z.5   = z.70
+         z.6   = decaps(cipe.54, skCe.62)
+         z.7   = cert_id(certT.52)
+    
+     24. IDc   = IDc.50
+         certC = cert(x.96, x.97, z.64)
+         certT = certT.52
+         cip   = encaps(z.70, pk(skC.61))
+         cipe  = encaps(z.71, pk(skCe.62))
+         pkCe  = pkCe.56
+         r1    = r1.57
+         r2    = r2.58
+         sC    = sC.59
+         sT    = sT.60
+         skC   = skC.61
+         skCe  = skCe.62
+         z     = z.64
+         z.1   = verify(cert_sig(certT.52),
+                        <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.97, <x.96, z.64, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.60, <'TA', IDc.50, r1.57>, cert_pk(certT.52))
+         z.4   = verify(sC.59,
+                        <'CA', certT.52, cert(x.96, x.97, z.64), r2.58, 
+                         encaps(z.70, pk(skC.61)), pkCe.56, encaps(z.71, pk(skCe.62))>,
+                        cert_pk(certT.52))
+         z.5   = z.70
+         z.6   = z.71
+         z.7   = cert_id(certT.52)
+    
+     25. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.98), x.99, z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', cert(pk(x.98), x.99, z.73), certC.52, r2.59, cip.54, 
+                       pkCe.57, cipe.55>,
+                      x.98)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = verify(x.99, <pk(x.98), z.73, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.98))
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     26. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.98), x.99, z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', cert(pk(x.98), x.99, z.73), certC.52, r2.59, cip.54, 
+                       pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.98)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = verify(x.99, <pk(x.98), z.73, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.98))
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     27. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.98), x.99, z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', cert(pk(x.98), x.99, z.73), certC.52, r2.59, 
+                       encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                      x.98)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = verify(x.99, <pk(x.98), z.73, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.98))
+         z.4   = true
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     28. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.98), x.99, z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', cert(pk(x.98), x.99, z.73), certC.52, r2.59, 
+                       encaps(z.71, pk(skC.62)), pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.98)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = verify(x.99, <pk(x.98), z.73, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.98))
+         z.4   = true
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     29. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.60,
+                        <'CA', cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                         certC.52, r2.59, cip.54, pkCe.57, cipe.55>,
+                        pk(x.99))
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     30. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       certC.52, r2.59, cip.54, pkCe.57, cipe.55>,
+                      x.99)
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     31. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.60,
+                        <'CA', cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                         certC.52, r2.59, cip.54, pkCe.57, encaps(z.72, pk(skCe.63))>,
+                        pk(x.99))
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     32. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       certC.52, r2.59, cip.54, pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.99)
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     33. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.60,
+                        <'CA', cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                         certC.52, r2.59, encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                        pk(x.99))
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     34. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       certC.52, r2.59, encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                      x.99)
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     35. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.60,
+                        <'CA', cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                         certC.52, r2.59, encaps(z.71, pk(skC.62)), pkCe.57, 
+                         encaps(z.72, pk(skCe.63))>,
+                        pk(x.99))
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     36. IDc   = IDc.51
+         certC = certC.52
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       certC.52, r2.59, encaps(z.71, pk(skC.62)), pkCe.57, 
+                       encaps(z.72, pk(skCe.63))>,
+                      x.99)
+         sT    = sign(<'TA', IDc.51, r1.58>, x.99)
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = cert_id(certC.52)
+         z.1   = true
+         z.2   = verify(cert_sig(certC.52),
+                        <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     37. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, x.99)
+         z.4   = verify(sC.60,
+                        <'CA', cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73), 
+                         cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, cip.54, 
+                         pkCe.57, cipe.55>,
+                        x.99)
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     38. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, x.99)
+         z.4   = verify(sC.60,
+                        <'CA', cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73), 
+                         cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, cip.54, 
+                         pkCe.57, encaps(z.72, pk(skCe.63))>,
+                        x.99)
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     39. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, x.99)
+         z.4   = verify(sC.60,
+                        <'CA', cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73), 
+                         cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, 
+                         encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                        x.99)
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     40. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sC.60
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, x.99)
+         z.4   = verify(sC.60,
+                        <'CA', cert(x.99, sign(<x.99, z.73, 'terminal'>, ca_sk), z.73), 
+                         cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, 
+                         encaps(z.71, pk(skC.62)), pkCe.57, encaps(z.72, pk(skCe.63))>,
+                        x.99)
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     41. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, cip.54, 
+                       pkCe.57, cipe.55>,
+                      x.99)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.99))
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     42. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = cip.54
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, cip.54, 
+                       pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.99)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.99))
+         z.4   = true
+         z.5   = decaps(cip.54, skC.62)
+         z.6   = z.72
+         z.7   = z.73
+    
+     43. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = cipe.55
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, 
+                       encaps(z.71, pk(skC.62)), pkCe.57, cipe.55>,
+                      x.99)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.99))
+         z.4   = true
+         z.5   = z.71
+         z.6   = decaps(cipe.55, skCe.63)
+         z.7   = z.73
+    
+     44. IDc   = IDc.51
+         certC = cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65)
+         certT = cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73)
+         cip   = encaps(z.71, pk(skC.62))
+         cipe  = encaps(z.72, pk(skCe.63))
+         pkCe  = pkCe.57
+         r1    = r1.58
+         r2    = r2.59
+         sC    = sign(<'CA', 
+                       cert(pk(x.99), sign(<pk(x.99), z.73, 'terminal'>, ca_sk), z.73), 
+                       cert(x.97, sign(<x.97, z.65, 'chip'>, ca_sk), z.65), r2.59, 
+                       encaps(z.71, pk(skC.62)), pkCe.57, encaps(z.72, pk(skCe.63))>,
+                      x.99)
+         sT    = sT.61
+         skC   = skC.62
+         skCe  = skCe.63
+         z     = z.65
+         z.1   = true
+         z.2   = true
+         z.3   = verify(sT.61, <'TA', IDc.51, r1.58>, pk(x.99))
+         z.4   = true
+         z.5   = z.71
+         z.6   = z.72
+         z.7   = z.73
+    
+     45. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, cip.55, pkCe.58, 
+                         cipe.56>,
+                        pk(x.100))
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     46. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                       cip.55, pkCe.58, cipe.56>,
+                      x.100)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     47. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, cip.55, pkCe.58, 
+                         encaps(z.73, pk(skCe.64))>,
+                        pk(x.100))
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     48. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                       cip.55, pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.100)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     49. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                        pk(x.100))
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     50. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                      x.100)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     51. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        pk(x.100))
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     52. IDc   = IDc.52
+         certC = certC.53
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), certC.53, r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.100)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.100)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = cert_id(certC.53)
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = verify(cert_sig(certC.53),
+                        <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     53. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.101)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.98, x.99, z.66), r2.60, cip.55, pkCe.58, cipe.56>,
+                        x.101)
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     54. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.101)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.98, x.99, z.66), r2.60, cip.55, pkCe.58, encaps(z.73, pk(skCe.64))
+                        >,
+                        x.101)
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     55. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.101)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.98, x.99, z.66), r2.60, encaps(z.72, pk(skC.63)), pkCe.58, cipe.56
+                        >,
+                        x.101)
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     56. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.101)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.101, sign(<x.101, z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.98, x.99, z.66), r2.60, encaps(z.72, pk(skC.63)), pkCe.58, 
+                         encaps(z.73, pk(skCe.64))>,
+                        x.101)
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     57. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.98, x.99, z.66), r2.60, cip.55, pkCe.58, cipe.56>,
+                      x.101)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.101))
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     58. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.98, x.99, z.66), r2.60, cip.55, pkCe.58, encaps(z.73, pk(skCe.64))
+                      >,
+                      x.101)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.101))
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     59. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.98, x.99, z.66), r2.60, encaps(z.72, pk(skC.63)), pkCe.58, cipe.56
+                      >,
+                      x.101)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.101))
+         z.4   = true
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     60. IDc   = IDc.52
+         certC = cert(x.98, x.99, z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.98, x.99, z.66), r2.60, encaps(z.72, pk(skC.63)), pkCe.58, 
+                       encaps(z.73, pk(skCe.64))>,
+                      x.101)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = verify(x.99, <x.98, z.66, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.101))
+         z.4   = true
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     61. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(x.100, x.101, z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <x.100, z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.100)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.100, x.101, z.74), 
+                         cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                         pkCe.58, cipe.56>,
+                        x.100)
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     62. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(x.100, x.101, z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <x.100, z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.100)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.100, x.101, z.74), 
+                         cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                         pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        x.100)
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     63. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(x.100, x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <x.100, z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.100)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.100, x.101, z.74), 
+                         cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                        x.100)
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     64. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(x.100, x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <x.100, z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, x.100)
+         z.4   = verify(sC.61,
+                        <'CA', cert(x.100, x.101, z.74), 
+                         cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        x.100)
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     65. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), 
+                       cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                       pkCe.58, cipe.56>,
+                      x.100)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.100))
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     66. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), 
+                       cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                       pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.100)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.100))
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     67. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), 
+                       cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                      x.100)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.100))
+         z.4   = true
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     68. IDc   = IDc.52
+         certC = cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.100), x.101, z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', cert(pk(x.100), x.101, z.74), 
+                       cert(x.98, sign(<x.98, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.100)
+         sT    = sT.62
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = verify(x.101, <pk(x.100), z.74, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = verify(sT.62, <'TA', IDc.52, r1.59>, pk(x.100))
+         z.4   = true
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     69. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', 
+                         cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                         pkCe.58, cipe.56>,
+                        pk(x.101))
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     70. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                       pkCe.58, cipe.56>,
+                      x.101)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     71. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', 
+                         cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                         pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        pk(x.101))
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     72. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = cip.55
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, cip.55, 
+                       pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.101)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.55, skC.63)
+         z.6   = z.73
+         z.7   = z.74
+    
+     73. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', 
+                         cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                        pk(x.101))
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     74. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = cipe.56
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, cipe.56>,
+                      x.101)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.72
+         z.6   = decaps(cipe.56, skCe.64)
+         z.7   = z.74
+    
+     75. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sC.61
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.61,
+                        <'CA', 
+                         cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                         cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                         encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                        pk(x.101))
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     76. IDc   = IDc.52
+         certC = cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66)
+         certT = cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74)
+         cip   = encaps(z.72, pk(skC.63))
+         cipe  = encaps(z.73, pk(skCe.64))
+         pkCe  = pkCe.58
+         r1    = r1.59
+         r2    = r2.60
+         sC    = sign(<'CA', 
+                       cert(pk(x.101), sign(<pk(x.101), z.74, 'terminal'>, ca_sk), z.74), 
+                       cert(x.99, sign(<x.99, z.66, 'chip'>, ca_sk), z.66), r2.60, 
+                       encaps(z.72, pk(skC.63)), pkCe.58, encaps(z.73, pk(skCe.64))>,
+                      x.101)
+         sT    = sign(<'TA', IDc.52, r1.59>, x.101)
+         skC   = skC.63
+         skCe  = skCe.64
+         z     = z.66
+         z.1   = true
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.72
+         z.6   = z.73
+         z.7   = z.74
+    
+     77. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(x.102, x.103, z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <x.102, z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, x.102)
+         z.4   = verify(sC.62,
+                        <'CA', cert(x.102, x.103, z.75), cert(x.99, x.100, z.67), r2.61, cip.56, 
+                         pkCe.59, cipe.57>,
+                        x.102)
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     78. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(x.102, x.103, z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <x.102, z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, x.102)
+         z.4   = verify(sC.62,
+                        <'CA', cert(x.102, x.103, z.75), cert(x.99, x.100, z.67), r2.61, cip.56, 
+                         pkCe.59, encaps(z.74, pk(skCe.65))>,
+                        x.102)
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     79. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(x.102, x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <x.102, z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, x.102)
+         z.4   = verify(sC.62,
+                        <'CA', cert(x.102, x.103, z.75), cert(x.99, x.100, z.67), r2.61, 
+                         encaps(z.73, pk(skC.64)), pkCe.59, cipe.57>,
+                        x.102)
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     80. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(x.102, x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <x.102, z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, x.102)
+         z.4   = verify(sC.62,
+                        <'CA', cert(x.102, x.103, z.75), cert(x.99, x.100, z.67), r2.61, 
+                         encaps(z.73, pk(skC.64)), pkCe.59, encaps(z.74, pk(skCe.65))>,
+                        x.102)
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+     81. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.99, x.100, z.67), r2.61, cip.56, pkCe.59, cipe.57>,
+                      x.102)
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, pk(x.102))
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     82. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.99, x.100, z.67), r2.61, cip.56, pkCe.59, 
+                       encaps(z.74, pk(skCe.65))>,
+                      x.102)
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, pk(x.102))
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     83. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.99, x.100, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                       cipe.57>,
+                      x.102)
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, pk(x.102))
+         z.4   = true
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     84. IDc   = IDc.53
+         certC = cert(x.99, x.100, z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.99, x.100, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                       encaps(z.74, pk(skCe.65))>,
+                      x.102)
+         sT    = sT.63
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.100, <x.99, z.67, 'chip'>, pk(ca_sk))
+         z.3   = verify(sT.63, <'TA', IDc.53, r1.60>, pk(x.102))
+         z.4   = true
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+     85. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', 
+                         cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                         cert(x.100, x.101, z.67), r2.61, cip.56, pkCe.59, cipe.57>,
+                        pk(x.103))
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     86. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', 
+                       cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                       cert(x.100, x.101, z.67), r2.61, cip.56, pkCe.59, cipe.57>,
+                      x.103)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     87. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', 
+                         cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                         cert(x.100, x.101, z.67), r2.61, cip.56, pkCe.59, 
+                         encaps(z.74, pk(skCe.65))>,
+                        pk(x.103))
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     88. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', 
+                       cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                       cert(x.100, x.101, z.67), r2.61, cip.56, pkCe.59, 
+                       encaps(z.74, pk(skCe.65))>,
+                      x.103)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     89. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', 
+                         cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                         cert(x.100, x.101, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                         cipe.57>,
+                        pk(x.103))
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     90. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', 
+                       cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                       cert(x.100, x.101, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                       cipe.57>,
+                      x.103)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     91. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', 
+                         cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                         cert(x.100, x.101, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                         encaps(z.74, pk(skCe.65))>,
+                        pk(x.103))
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+     92. IDc   = IDc.53
+         certC = cert(x.100, x.101, z.67)
+         certT = cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', 
+                       cert(pk(x.103), sign(<pk(x.103), z.75, 'terminal'>, ca_sk), z.75), 
+                       cert(x.100, x.101, z.67), r2.61, encaps(z.73, pk(skC.64)), pkCe.59, 
+                       encaps(z.74, pk(skCe.65))>,
+                      x.103)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.103)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = true
+         z.2   = verify(x.101, <x.100, z.67, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+     93. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', cert(pk(x.102), x.103, z.75), 
+                         cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, cip.56, 
+                         pkCe.59, cipe.57>,
+                        pk(x.102))
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     94. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, cip.56, 
+                       pkCe.59, cipe.57>,
+                      x.102)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     95. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', cert(pk(x.102), x.103, z.75), 
+                         cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, cip.56, 
+                         pkCe.59, encaps(z.74, pk(skCe.65))>,
+                        pk(x.102))
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     96. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = cip.56
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, cip.56, 
+                       pkCe.59, encaps(z.74, pk(skCe.65))>,
+                      x.102)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.56, skC.64)
+         z.6   = z.74
+         z.7   = z.75
+    
+     97. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', cert(pk(x.102), x.103, z.75), 
+                         cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, 
+                         encaps(z.73, pk(skC.64)), pkCe.59, cipe.57>,
+                        pk(x.102))
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     98. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = cipe.57
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, 
+                       encaps(z.73, pk(skC.64)), pkCe.59, cipe.57>,
+                      x.102)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.73
+         z.6   = decaps(cipe.57, skCe.65)
+         z.7   = z.75
+    
+     99. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sC.62
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = verify(sC.62,
+                        <'CA', cert(pk(x.102), x.103, z.75), 
+                         cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, 
+                         encaps(z.73, pk(skC.64)), pkCe.59, encaps(z.74, pk(skCe.65))>,
+                        pk(x.102))
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+    100. IDc   = IDc.53
+         certC = cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67)
+         certT = cert(pk(x.102), x.103, z.75)
+         cip   = encaps(z.73, pk(skC.64))
+         cipe  = encaps(z.74, pk(skCe.65))
+         pkCe  = pkCe.59
+         r1    = r1.60
+         r2    = r2.61
+         sC    = sign(<'CA', cert(pk(x.102), x.103, z.75), 
+                       cert(x.100, sign(<x.100, z.67, 'chip'>, ca_sk), z.67), r2.61, 
+                       encaps(z.73, pk(skC.64)), pkCe.59, encaps(z.74, pk(skCe.65))>,
+                      x.102)
+         sT    = sign(<'TA', IDc.53, r1.60>, x.102)
+         skC   = skC.64
+         skCe  = skCe.65
+         z     = z.67
+         z.1   = verify(x.103, <pk(x.102), z.75, 'terminal'>, pk(ca_sk))
+         z.2   = true
+         z.3   = true
+         z.4   = true
+         z.5   = z.73
+         z.6   = z.74
+         z.7   = z.75
+    
+    101. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = cip.57
+         cipe  = cipe.58
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sC.63
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.63,
+                        <'CA', cert(pk(x.104), x.105, z.76), cert(x.101, x.102, z.68), r2.62, 
+                         cip.57, pkCe.60, cipe.58>,
+                        pk(x.104))
+         z.5   = decaps(cip.57, skC.65)
+         z.6   = decaps(cipe.58, skCe.66)
+         z.7   = z.76
+    
+    102. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = cip.57
+         cipe  = cipe.58
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sign(<'CA', cert(pk(x.104), x.105, z.76), 
+                       cert(x.101, x.102, z.68), r2.62, cip.57, pkCe.60, cipe.58>,
+                      x.104)
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.57, skC.65)
+         z.6   = decaps(cipe.58, skCe.66)
+         z.7   = z.76
+    
+    103. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = cip.57
+         cipe  = encaps(z.75, pk(skCe.66))
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sC.63
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.63,
+                        <'CA', cert(pk(x.104), x.105, z.76), cert(x.101, x.102, z.68), r2.62, 
+                         cip.57, pkCe.60, encaps(z.75, pk(skCe.66))>,
+                        pk(x.104))
+         z.5   = decaps(cip.57, skC.65)
+         z.6   = z.75
+         z.7   = z.76
+    
+    104. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = cip.57
+         cipe  = encaps(z.75, pk(skCe.66))
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sign(<'CA', cert(pk(x.104), x.105, z.76), 
+                       cert(x.101, x.102, z.68), r2.62, cip.57, pkCe.60, 
+                       encaps(z.75, pk(skCe.66))>,
+                      x.104)
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = decaps(cip.57, skC.65)
+         z.6   = z.75
+         z.7   = z.76
+    
+    105. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = encaps(z.74, pk(skC.65))
+         cipe  = cipe.58
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sC.63
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.63,
+                        <'CA', cert(pk(x.104), x.105, z.76), cert(x.101, x.102, z.68), r2.62, 
+                         encaps(z.74, pk(skC.65)), pkCe.60, cipe.58>,
+                        pk(x.104))
+         z.5   = z.74
+         z.6   = decaps(cipe.58, skCe.66)
+         z.7   = z.76
+    
+    106. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = encaps(z.74, pk(skC.65))
+         cipe  = cipe.58
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sign(<'CA', cert(pk(x.104), x.105, z.76), 
+                       cert(x.101, x.102, z.68), r2.62, encaps(z.74, pk(skC.65)), pkCe.60, 
+                       cipe.58>,
+                      x.104)
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.74
+         z.6   = decaps(cipe.58, skCe.66)
+         z.7   = z.76
+    
+    107. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = encaps(z.74, pk(skC.65))
+         cipe  = encaps(z.75, pk(skCe.66))
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sC.63
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = verify(sC.63,
+                        <'CA', cert(pk(x.104), x.105, z.76), cert(x.101, x.102, z.68), r2.62, 
+                         encaps(z.74, pk(skC.65)), pkCe.60, encaps(z.75, pk(skCe.66))>,
+                        pk(x.104))
+         z.5   = z.74
+         z.6   = z.75
+         z.7   = z.76
+    
+    108. IDc   = IDc.54
+         certC = cert(x.101, x.102, z.68)
+         certT = cert(pk(x.104), x.105, z.76)
+         cip   = encaps(z.74, pk(skC.65))
+         cipe  = encaps(z.75, pk(skCe.66))
+         pkCe  = pkCe.60
+         r1    = r1.61
+         r2    = r2.62
+         sC    = sign(<'CA', cert(pk(x.104), x.105, z.76), 
+                       cert(x.101, x.102, z.68), r2.62, encaps(z.74, pk(skC.65)), pkCe.60, 
+                       encaps(z.75, pk(skCe.66))>,
+                      x.104)
+         sT    = sign(<'TA', IDc.54, r1.61>, x.104)
+         skC   = skC.65
+         skCe  = skCe.66
+         z     = z.68
+         z.1   = verify(x.105, <pk(x.104), z.76, 'terminal'>, pk(ca_sk))
+         z.2   = verify(x.102, <x.101, z.68, 'chip'>, pk(ca_sk))
+         z.3   = true
+         z.4   = true
+         z.5   = z.74
+         z.6   = z.75
+         z.7   = z.76
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, IDc, r1, sT, certC, r2, pkCe, cip, sC, cipe, kCNF> ),
+   In( <k, ke> ), !Pk( T, pkT, 'terminal' )
+   ]
+  --[
+  Eq( T, cert_id(certT) ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(sT, <'TA', IDc, r1>, pkT), true ),
+  Eq( verify(sC, <'CA', certT, certC, r2, cip, pkCe, cipe>, pkT), true ),
+  Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>) ),
+  ValidTrans( T, 'terminal', cert_id(certC) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, IDc, r1, sT, certC, r2, pkCe, cip, sC, cipe, kCNF> ),
+     In( <k, ke> ), !Pk( T, pkT, 'terminal' )
+     ]
+    --[
+    Eq( T, z ), Eq( z.1, true ), Eq( z.2, true ), Eq( z.3, true ),
+    Eq( z.4, true ),
+    Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip, pkCe, cipe>, <k, ke>) ),
+    ValidTrans( T, 'terminal', z.5 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. IDc   = IDc.39
+        certC = certC.41
+        certT = certT.42
+        cip   = cip.43
+        cipe  = cipe.44
+        pkCe  = pkCe.48
+        pkT   = pkT.49
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        z     = cert_id(certT.42)
+        z.1   = verify(cert_sig(certT.42),
+                       <cert_pk(certT.42), cert_id(certT.42), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.41),
+                       <cert_pk(certC.41), cert_id(certC.41), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.39, r1.50>, pkT.49)
+        z.4   = verify(sC.52,
+                       <'CA', certT.42, certC.41, r2.51, cip.43, pkCe.48, cipe.44>, pkT.49)
+        z.5   = cert_id(certC.41)
+    
+     2. IDc   = IDc.48
+        certC = certC.50
+        certT = cert(x.94, sign(<x.94, z.64, 'terminal'>, ca_sk), z.64)
+        cip   = cip.52
+        cipe  = cipe.53
+        pkCe  = pkCe.57
+        pkT   = pkT.58
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sT.62
+        z     = z.64
+        z.1   = true
+        z.2   = verify(cert_sig(certC.50),
+                       <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.62, <'TA', IDc.48, r1.59>, pkT.58)
+        z.4   = verify(sC.61,
+                       <'CA', cert(x.94, sign(<x.94, z.64, 'terminal'>, ca_sk), z.64), 
+                        certC.50, r2.60, cip.52, pkCe.57, cipe.53>,
+                       pkT.58)
+        z.5   = cert_id(certC.50)
+    
+     3. IDc   = IDc.48
+        certC = cert(x.94, sign(<x.94, z.70, 'chip'>, ca_sk), z.70)
+        certT = certT.51
+        cip   = cip.52
+        cipe  = cipe.53
+        pkCe  = pkCe.57
+        pkT   = pkT.58
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sT.62
+        z     = cert_id(certT.51)
+        z.1   = verify(cert_sig(certT.51),
+                       <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.62, <'TA', IDc.48, r1.59>, pkT.58)
+        z.4   = verify(sC.61,
+                       <'CA', certT.51, cert(x.94, sign(<x.94, z.70, 'chip'>, ca_sk), z.70), 
+                        r2.60, cip.52, pkCe.57, cipe.53>,
+                       pkT.58)
+        z.5   = z.70
+    
+     4. IDc   = IDc.49
+        certC = certC.51
+        certT = cert(x.95, x.96, z.65)
+        cip   = cip.53
+        cipe  = cipe.54
+        pkCe  = pkCe.58
+        pkT   = pkT.59
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sC.62
+        sT    = sT.63
+        z     = z.65
+        z.1   = verify(x.96, <x.95, z.65, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.51),
+                       <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.63, <'TA', IDc.49, r1.60>, pkT.59)
+        z.4   = verify(sC.62,
+                       <'CA', cert(x.95, x.96, z.65), certC.51, r2.61, cip.53, pkCe.58, cipe.54
+                       >,
+                       pkT.59)
+        z.5   = cert_id(certC.51)
+    
+     5. IDc   = IDc.49
+        certC = cert(x.95, x.96, z.71)
+        certT = certT.52
+        cip   = cip.53
+        cipe  = cipe.54
+        pkCe  = pkCe.58
+        pkT   = pkT.59
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sC.62
+        sT    = sT.63
+        z     = cert_id(certT.52)
+        z.1   = verify(cert_sig(certT.52),
+                       <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.96, <x.95, z.71, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.63, <'TA', IDc.49, r1.60>, pkT.59)
+        z.4   = verify(sC.62,
+                       <'CA', certT.52, cert(x.95, x.96, z.71), r2.61, cip.53, pkCe.58, cipe.54
+                       >,
+                       pkT.59)
+        z.5   = z.71
+    
+     6. IDc   = IDc.50
+        certC = cert(x.96, sign(<x.96, z.72, 'chip'>, ca_sk), z.72)
+        certT = cert(x.98, sign(<x.98, z.66, 'terminal'>, ca_sk), z.66)
+        cip   = cip.54
+        cipe  = cipe.55
+        pkCe  = pkCe.59
+        pkT   = pkT.60
+        r1    = r1.61
+        r2    = r2.62
+        sC    = sC.63
+        sT    = sT.64
+        z     = z.66
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.64, <'TA', IDc.50, r1.61>, pkT.60)
+        z.4   = verify(sC.63,
+                       <'CA', cert(x.98, sign(<x.98, z.66, 'terminal'>, ca_sk), z.66), 
+                        cert(x.96, sign(<x.96, z.72, 'chip'>, ca_sk), z.72), r2.62, cip.54, 
+                        pkCe.59, cipe.55>,
+                       pkT.60)
+        z.5   = z.72
+    
+     7. IDc   = IDc.51
+        certC = cert(x.97, x.98, z.73)
+        certT = cert(x.100, sign(<x.100, z.67, 'terminal'>, ca_sk), z.67)
+        cip   = cip.55
+        cipe  = cipe.56
+        pkCe  = pkCe.60
+        pkT   = pkT.61
+        r1    = r1.62
+        r2    = r2.63
+        sC    = sC.64
+        sT    = sT.65
+        z     = z.67
+        z.1   = true
+        z.2   = verify(x.98, <x.97, z.73, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.65, <'TA', IDc.51, r1.62>, pkT.61)
+        z.4   = verify(sC.64,
+                       <'CA', cert(x.100, sign(<x.100, z.67, 'terminal'>, ca_sk), z.67), 
+                        cert(x.97, x.98, z.73), r2.63, cip.55, pkCe.60, cipe.56>,
+                       pkT.61)
+        z.5   = z.73
+    
+     8. IDc   = IDc.51
+        certC = cert(x.97, sign(<x.97, z.73, 'chip'>, ca_sk), z.73)
+        certT = cert(x.99, x.100, z.67)
+        cip   = cip.55
+        cipe  = cipe.56
+        pkCe  = pkCe.60
+        pkT   = pkT.61
+        r1    = r1.62
+        r2    = r2.63
+        sC    = sC.64
+        sT    = sT.65
+        z     = z.67
+        z.1   = verify(x.100, <x.99, z.67, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.65, <'TA', IDc.51, r1.62>, pkT.61)
+        z.4   = verify(sC.64,
+                       <'CA', cert(x.99, x.100, z.67), 
+                        cert(x.97, sign(<x.97, z.73, 'chip'>, ca_sk), z.73), r2.63, cip.55, 
+                        pkCe.60, cipe.56>,
+                       pkT.61)
+        z.5   = z.73
+    
+     9. IDc   = IDc.52
+        certC = cert(x.98, x.99, z.74)
+        certT = cert(x.101, x.102, z.68)
+        cip   = cip.56
+        cipe  = cipe.57
+        pkCe  = pkCe.61
+        pkT   = pkT.62
+        r1    = r1.63
+        r2    = r2.64
+        sC    = sC.65
+        sT    = sT.66
+        z     = z.68
+        z.1   = verify(x.102, <x.101, z.68, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.99, <x.98, z.74, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.66, <'TA', IDc.52, r1.63>, pkT.62)
+        z.4   = verify(sC.65,
+                       <'CA', cert(x.101, x.102, z.68), cert(x.98, x.99, z.74), r2.64, cip.56, 
+                        pkCe.61, cipe.57>,
+                       pkT.62)
+        z.5   = z.74
+    
+    10. IDc   = IDc.56
+        certC = certC.58
+        certT = certT.59
+        cip   = cip.60
+        cipe  = cipe.61
+        pkCe  = pkCe.65
+        pkT   = pk(x.110)
+        r1    = r1.67
+        r2    = r2.68
+        sC    = sign(<'CA', certT.59, certC.58, r2.68, cip.60, pkCe.65, cipe.61>,
+                     x.110)
+        sT    = sT.70
+        z     = cert_id(certT.59)
+        z.1   = verify(cert_sig(certT.59),
+                       <cert_pk(certT.59), cert_id(certT.59), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.58),
+                       <cert_pk(certC.58), cert_id(certC.58), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.70, <'TA', IDc.56, r1.67>, pk(x.110))
+        z.4   = true
+        z.5   = cert_id(certC.58)
+    
+    11. IDc   = IDc.57
+        certC = certC.59
+        certT = cert(x.104, sign(<x.104, z.73, 'terminal'>, ca_sk), z.73)
+        cip   = cip.61
+        cipe  = cipe.62
+        pkCe  = pkCe.66
+        pkT   = pk(x.112)
+        r1    = r1.68
+        r2    = r2.69
+        sC    = sign(<'CA', 
+                      cert(x.104, sign(<x.104, z.73, 'terminal'>, ca_sk), z.73), certC.59, 
+                      r2.69, cip.61, pkCe.66, cipe.62>,
+                     x.112)
+        sT    = sT.71
+        z     = z.73
+        z.1   = true
+        z.2   = verify(cert_sig(certC.59),
+                       <cert_pk(certC.59), cert_id(certC.59), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.71, <'TA', IDc.57, r1.68>, pk(x.112))
+        z.4   = true
+        z.5   = cert_id(certC.59)
+    
+    12. IDc   = IDc.57
+        certC = cert(x.103, sign(<x.103, z.79, 'chip'>, ca_sk), z.79)
+        certT = certT.60
+        cip   = cip.61
+        cipe  = cipe.62
+        pkCe  = pkCe.66
+        pkT   = pk(x.112)
+        r1    = r1.68
+        r2    = r2.69
+        sC    = sign(<'CA', certT.60, 
+                      cert(x.103, sign(<x.103, z.79, 'chip'>, ca_sk), z.79), r2.69, cip.61, 
+                      pkCe.66, cipe.62>,
+                     x.112)
+        sT    = sT.71
+        z     = cert_id(certT.60)
+        z.1   = verify(cert_sig(certT.60),
+                       <cert_pk(certT.60), cert_id(certT.60), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.71, <'TA', IDc.57, r1.68>, pk(x.112))
+        z.4   = true
+        z.5   = z.79
+    
+    13. IDc   = IDc.58
+        certC = certC.60
+        certT = certT.61
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sC.71
+        sT    = sign(<'TA', IDc.58, r1.69>, x.114)
+        z     = cert_id(certT.61)
+        z.1   = verify(cert_sig(certT.61),
+                       <cert_pk(certT.61), cert_id(certT.61), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.60),
+                       <cert_pk(certC.60), cert_id(certC.60), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.71,
+                       <'CA', certT.61, certC.60, r2.70, cip.62, pkCe.67, cipe.63>, pk(x.114))
+        z.5   = cert_id(certC.60)
+    
+    14. IDc   = IDc.58
+        certC = certC.60
+        certT = certT.61
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sign(<'CA', certT.61, certC.60, r2.70, cip.62, pkCe.67, cipe.63>,
+                     x.114)
+        sT    = sign(<'TA', IDc.58, r1.69>, x.114)
+        z     = cert_id(certT.61)
+        z.1   = verify(cert_sig(certT.61),
+                       <cert_pk(certT.61), cert_id(certT.61), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.60),
+                       <cert_pk(certC.60), cert_id(certC.60), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.60)
+    
+    15. IDc   = IDc.58
+        certC = certC.60
+        certT = cert(x.105, x.106, z.74)
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sign(<'CA', cert(x.105, x.106, z.74), certC.60, r2.70, cip.62, 
+                      pkCe.67, cipe.63>,
+                     x.114)
+        sT    = sT.72
+        z     = z.74
+        z.1   = verify(x.106, <x.105, z.74, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.60),
+                       <cert_pk(certC.60), cert_id(certC.60), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.72, <'TA', IDc.58, r1.69>, pk(x.114))
+        z.4   = true
+        z.5   = cert_id(certC.60)
+    
+    16. IDc   = IDc.58
+        certC = cert(x.104, x.105, z.80)
+        certT = certT.61
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sign(<'CA', certT.61, cert(x.104, x.105, z.80), r2.70, cip.62, 
+                      pkCe.67, cipe.63>,
+                     x.114)
+        sT    = sT.72
+        z     = cert_id(certT.61)
+        z.1   = verify(cert_sig(certT.61),
+                       <cert_pk(certT.61), cert_id(certT.61), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.105, <x.104, z.80, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.72, <'TA', IDc.58, r1.69>, pk(x.114))
+        z.4   = true
+        z.5   = z.80
+    
+    17. IDc   = IDc.58
+        certC = cert(x.104, sign(<x.104, z.80, 'chip'>, ca_sk), z.80)
+        certT = cert(x.106, sign(<x.106, z.74, 'terminal'>, ca_sk), z.74)
+        cip   = cip.62
+        cipe  = cipe.63
+        pkCe  = pkCe.67
+        pkT   = pk(x.114)
+        r1    = r1.69
+        r2    = r2.70
+        sC    = sign(<'CA', 
+                      cert(x.106, sign(<x.106, z.74, 'terminal'>, ca_sk), z.74), 
+                      cert(x.104, sign(<x.104, z.80, 'chip'>, ca_sk), z.80), r2.70, cip.62, 
+                      pkCe.67, cipe.63>,
+                     x.114)
+        sT    = sT.72
+        z     = z.74
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.72, <'TA', IDc.58, r1.69>, pk(x.114))
+        z.4   = true
+        z.5   = z.80
+    
+    18. IDc   = IDc.59
+        certC = certC.61
+        certT = cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75)
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sC.72
+        sT    = sign(<'TA', IDc.59, r1.70>, x.116)
+        z     = z.75
+        z.1   = true
+        z.2   = verify(cert_sig(certC.61),
+                       <cert_pk(certC.61), cert_id(certC.61), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.72,
+                       <'CA', cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75), 
+                        certC.61, r2.71, cip.63, pkCe.68, cipe.64>,
+                       pk(x.116))
+        z.5   = cert_id(certC.61)
+    
+    19. IDc   = IDc.59
+        certC = certC.61
+        certT = cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75)
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sign(<'CA', 
+                      cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75), certC.61, 
+                      r2.71, cip.63, pkCe.68, cipe.64>,
+                     x.116)
+        sT    = sign(<'TA', IDc.59, r1.70>, x.116)
+        z     = z.75
+        z.1   = true
+        z.2   = verify(cert_sig(certC.61),
+                       <cert_pk(certC.61), cert_id(certC.61), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.61)
+    
+    20. IDc   = IDc.59
+        certC = cert(x.105, x.106, z.81)
+        certT = cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75)
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sign(<'CA', 
+                      cert(x.108, sign(<x.108, z.75, 'terminal'>, ca_sk), z.75), 
+                      cert(x.105, x.106, z.81), r2.71, cip.63, pkCe.68, cipe.64>,
+                     x.116)
+        sT    = sT.73
+        z     = z.75
+        z.1   = true
+        z.2   = verify(x.106, <x.105, z.81, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.73, <'TA', IDc.59, r1.70>, pk(x.116))
+        z.4   = true
+        z.5   = z.81
+    
+    21. IDc   = IDc.59
+        certC = cert(x.105, sign(<x.105, z.81, 'chip'>, ca_sk), z.81)
+        certT = cert(x.107, x.108, z.75)
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sign(<'CA', cert(x.107, x.108, z.75), 
+                      cert(x.105, sign(<x.105, z.81, 'chip'>, ca_sk), z.81), r2.71, cip.63, 
+                      pkCe.68, cipe.64>,
+                     x.116)
+        sT    = sT.73
+        z     = z.75
+        z.1   = verify(x.108, <x.107, z.75, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.73, <'TA', IDc.59, r1.70>, pk(x.116))
+        z.4   = true
+        z.5   = z.81
+    
+    22. IDc   = IDc.59
+        certC = cert(x.107, sign(<x.107, z.81, 'chip'>, ca_sk), z.81)
+        certT = certT.62
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sC.72
+        sT    = sign(<'TA', IDc.59, r1.70>, x.116)
+        z     = cert_id(certT.62)
+        z.1   = verify(cert_sig(certT.62),
+                       <cert_pk(certT.62), cert_id(certT.62), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.72,
+                       <'CA', certT.62, cert(x.107, sign(<x.107, z.81, 'chip'>, ca_sk), z.81), 
+                        r2.71, cip.63, pkCe.68, cipe.64>,
+                       pk(x.116))
+        z.5   = z.81
+    
+    23. IDc   = IDc.59
+        certC = cert(x.107, sign(<x.107, z.81, 'chip'>, ca_sk), z.81)
+        certT = certT.62
+        cip   = cip.63
+        cipe  = cipe.64
+        pkCe  = pkCe.68
+        pkT   = pk(x.116)
+        r1    = r1.70
+        r2    = r2.71
+        sC    = sign(<'CA', certT.62, 
+                      cert(x.107, sign(<x.107, z.81, 'chip'>, ca_sk), z.81), r2.71, cip.63, 
+                      pkCe.68, cipe.64>,
+                     x.116)
+        sT    = sign(<'TA', IDc.59, r1.70>, x.116)
+        z     = cert_id(certT.62)
+        z.1   = verify(cert_sig(certT.62),
+                       <cert_pk(certT.62), cert_id(certT.62), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.81
+    
+    24. IDc   = IDc.60
+        certC = certC.62
+        certT = cert(x.109, x.110, z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sC.73
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = z.76
+        z.1   = verify(x.110, <x.109, z.76, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.62),
+                       <cert_pk(certC.62), cert_id(certC.62), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.73,
+                       <'CA', cert(x.109, x.110, z.76), certC.62, r2.72, cip.64, pkCe.69, 
+                        cipe.65>,
+                       pk(x.118))
+        z.5   = cert_id(certC.62)
+    
+    25. IDc   = IDc.60
+        certC = certC.62
+        certT = cert(x.109, x.110, z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sign(<'CA', cert(x.109, x.110, z.76), certC.62, r2.72, cip.64, 
+                      pkCe.69, cipe.65>,
+                     x.118)
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = z.76
+        z.1   = verify(x.110, <x.109, z.76, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.62),
+                       <cert_pk(certC.62), cert_id(certC.62), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.62)
+    
+    26. IDc   = IDc.60
+        certC = cert(x.106, x.107, z.82)
+        certT = cert(x.109, x.110, z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sign(<'CA', cert(x.109, x.110, z.76), cert(x.106, x.107, z.82), 
+                      r2.72, cip.64, pkCe.69, cipe.65>,
+                     x.118)
+        sT    = sT.74
+        z     = z.76
+        z.1   = verify(x.110, <x.109, z.76, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.107, <x.106, z.82, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.74, <'TA', IDc.60, r1.71>, pk(x.118))
+        z.4   = true
+        z.5   = z.82
+    
+    27. IDc   = IDc.60
+        certC = cert(x.108, x.109, z.82)
+        certT = certT.63
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sC.73
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = cert_id(certT.63)
+        z.1   = verify(cert_sig(certT.63),
+                       <cert_pk(certT.63), cert_id(certT.63), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.109, <x.108, z.82, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.73,
+                       <'CA', certT.63, cert(x.108, x.109, z.82), r2.72, cip.64, pkCe.69, 
+                        cipe.65>,
+                       pk(x.118))
+        z.5   = z.82
+    
+    28. IDc   = IDc.60
+        certC = cert(x.108, x.109, z.82)
+        certT = certT.63
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sign(<'CA', certT.63, cert(x.108, x.109, z.82), r2.72, cip.64, 
+                      pkCe.69, cipe.65>,
+                     x.118)
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = cert_id(certT.63)
+        z.1   = verify(cert_sig(certT.63),
+                       <cert_pk(certT.63), cert_id(certT.63), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.109, <x.108, z.82, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.82
+    
+    29. IDc   = IDc.60
+        certC = cert(x.108, sign(<x.108, z.82, 'chip'>, ca_sk), z.82)
+        certT = cert(x.110, sign(<x.110, z.76, 'terminal'>, ca_sk), z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sC.73
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = z.76
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.73,
+                       <'CA', cert(x.110, sign(<x.110, z.76, 'terminal'>, ca_sk), z.76), 
+                        cert(x.108, sign(<x.108, z.82, 'chip'>, ca_sk), z.82), r2.72, cip.64, 
+                        pkCe.69, cipe.65>,
+                       pk(x.118))
+        z.5   = z.82
+    
+    30. IDc   = IDc.60
+        certC = cert(x.108, sign(<x.108, z.82, 'chip'>, ca_sk), z.82)
+        certT = cert(x.110, sign(<x.110, z.76, 'terminal'>, ca_sk), z.76)
+        cip   = cip.64
+        cipe  = cipe.65
+        pkCe  = pkCe.69
+        pkT   = pk(x.118)
+        r1    = r1.71
+        r2    = r2.72
+        sC    = sign(<'CA', 
+                      cert(x.110, sign(<x.110, z.76, 'terminal'>, ca_sk), z.76), 
+                      cert(x.108, sign(<x.108, z.82, 'chip'>, ca_sk), z.82), r2.72, cip.64, 
+                      pkCe.69, cipe.65>,
+                     x.118)
+        sT    = sign(<'TA', IDc.60, r1.71>, x.118)
+        z     = z.76
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.82
+    
+    31. IDc   = IDc.61
+        certC = cert(x.109, x.110, z.83)
+        certT = cert(x.112, sign(<x.112, z.77, 'terminal'>, ca_sk), z.77)
+        cip   = cip.65
+        cipe  = cipe.66
+        pkCe  = pkCe.70
+        pkT   = pk(x.120)
+        r1    = r1.72
+        r2    = r2.73
+        sC    = sC.74
+        sT    = sign(<'TA', IDc.61, r1.72>, x.120)
+        z     = z.77
+        z.1   = true
+        z.2   = verify(x.110, <x.109, z.83, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.74,
+                       <'CA', cert(x.112, sign(<x.112, z.77, 'terminal'>, ca_sk), z.77), 
+                        cert(x.109, x.110, z.83), r2.73, cip.65, pkCe.70, cipe.66>,
+                       pk(x.120))
+        z.5   = z.83
+    
+    32. IDc   = IDc.61
+        certC = cert(x.109, x.110, z.83)
+        certT = cert(x.112, sign(<x.112, z.77, 'terminal'>, ca_sk), z.77)
+        cip   = cip.65
+        cipe  = cipe.66
+        pkCe  = pkCe.70
+        pkT   = pk(x.120)
+        r1    = r1.72
+        r2    = r2.73
+        sC    = sign(<'CA', 
+                      cert(x.112, sign(<x.112, z.77, 'terminal'>, ca_sk), z.77), 
+                      cert(x.109, x.110, z.83), r2.73, cip.65, pkCe.70, cipe.66>,
+                     x.120)
+        sT    = sign(<'TA', IDc.61, r1.72>, x.120)
+        z     = z.77
+        z.1   = true
+        z.2   = verify(x.110, <x.109, z.83, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.83
+    
+    33. IDc   = IDc.61
+        certC = cert(x.109, sign(<x.109, z.83, 'chip'>, ca_sk), z.83)
+        certT = cert(x.111, x.112, z.77)
+        cip   = cip.65
+        cipe  = cipe.66
+        pkCe  = pkCe.70
+        pkT   = pk(x.120)
+        r1    = r1.72
+        r2    = r2.73
+        sC    = sC.74
+        sT    = sign(<'TA', IDc.61, r1.72>, x.120)
+        z     = z.77
+        z.1   = verify(x.112, <x.111, z.77, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.74,
+                       <'CA', cert(x.111, x.112, z.77), 
+                        cert(x.109, sign(<x.109, z.83, 'chip'>, ca_sk), z.83), r2.73, cip.65, 
+                        pkCe.70, cipe.66>,
+                       pk(x.120))
+        z.5   = z.83
+    
+    34. IDc   = IDc.61
+        certC = cert(x.109, sign(<x.109, z.83, 'chip'>, ca_sk), z.83)
+        certT = cert(x.111, x.112, z.77)
+        cip   = cip.65
+        cipe  = cipe.66
+        pkCe  = pkCe.70
+        pkT   = pk(x.120)
+        r1    = r1.72
+        r2    = r2.73
+        sC    = sign(<'CA', cert(x.111, x.112, z.77), 
+                      cert(x.109, sign(<x.109, z.83, 'chip'>, ca_sk), z.83), r2.73, cip.65, 
+                      pkCe.70, cipe.66>,
+                     x.120)
+        sT    = sign(<'TA', IDc.61, r1.72>, x.120)
+        z     = z.77
+        z.1   = verify(x.112, <x.111, z.77, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.83
+    
+    35. IDc   = IDc.62
+        certC = cert(x.110, x.111, z.84)
+        certT = cert(x.113, x.114, z.78)
+        cip   = cip.66
+        cipe  = cipe.67
+        pkCe  = pkCe.71
+        pkT   = pk(x.122)
+        r1    = r1.73
+        r2    = r2.74
+        sC    = sC.75
+        sT    = sign(<'TA', IDc.62, r1.73>, x.122)
+        z     = z.78
+        z.1   = verify(x.114, <x.113, z.78, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.111, <x.110, z.84, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.75,
+                       <'CA', cert(x.113, x.114, z.78), cert(x.110, x.111, z.84), r2.74, 
+                        cip.66, pkCe.71, cipe.67>,
+                       pk(x.122))
+        z.5   = z.84
+    
+    36. IDc   = IDc.62
+        certC = cert(x.110, x.111, z.84)
+        certT = cert(x.113, x.114, z.78)
+        cip   = cip.66
+        cipe  = cipe.67
+        pkCe  = pkCe.71
+        pkT   = pk(x.122)
+        r1    = r1.73
+        r2    = r2.74
+        sC    = sign(<'CA', cert(x.113, x.114, z.78), cert(x.110, x.111, z.84), 
+                      r2.74, cip.66, pkCe.71, cipe.67>,
+                     x.122)
+        sT    = sign(<'TA', IDc.62, r1.73>, x.122)
+        z     = z.78
+        z.1   = verify(x.114, <x.113, z.78, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.111, <x.110, z.84, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.84
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, skCe, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z, z.1>),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>,
+                          <z.1, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.5 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                 ~ltk.1)
+                       ) @ #vk.7 )
+                  case TA_RESPONSE_T
+                  solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.39 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~r2 ) @ #vk.33 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~id_c ) @ #vk.38 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~r1 ) @ #vk.39 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                                 ) @ #vk.22 )
+                            case CA_Sign_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                            <~k, ~ke>)
+                                   ) @ #vk.26 )
+                              case TA_COMPLETE_C
+                              solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.37 )
+                                case CA_Sign_ltk
+                                solve( !KU( pk(~skCe) ) @ #vk.38 )
+                                  case TA_CHALLENGE_C
+                                  solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.23 )
+                                    case TA_RESPONSE_T
+                                    solve( !KU( encaps(~ke, pk(~skCe)) ) @ #vk.25 )
+                                      case TA_RESPONSE_T
+                                      SOLVED // trace found
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, skCe, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z, z.1>),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>,
+                          <z.1, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case TA_COMPLETE_C
+                solve( TAChallengeC( <$C, iid.1>, cert(pk(x), x.1, $T), id_c.1, r1.1,
+                                     skCe.1, r2.1
+                       ) ▶₁ #i2 )
+                  case TA_CHALLENGE_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( kdf(<'KEY', 
+                                             cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), 
+                                             ~r2.1, cip, pk(~skCe.1), cipe>,
+                                            <z, z.1>),
+                                        <cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1, 
+                                         cip, pk(~skCe.1), cipe>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( CAInitT( <$T, iid.3>, id_c.3,
+                                        cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1,
+                                        <z, cip>, <z.1, cipe>, pk(~skCe.1)
+                               ) ▶₁ #j2 )
+                          case TA_RESPONSE_T
+                          solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.5 )
+                              case TA_RESPONSE_T
+                              solve( !KU( sign(<'CA', 
+                                                cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                     $T), 
+                                                cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                                encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                               ~ltk.1)
+                                     ) @ #vk.7 )
+                                case TA_RESPONSE_T
+                                solve( !KU( sign(<'TA', ~id_c.1, ~r1.1>, ~ltk.1) ) @ #vk.46 )
+                                  case TA_RESPONSE_T
+                                  solve( !KU( sign(<'CA', 
+                                                    cert(pk(~ltk.1),
+                                                         sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                                    cert(pk(~skC), sign(<pk(~skC), $C, 'chip'>, ca_sk), $C), 
+                                                    ~r2.1, encaps(~k.1, pk(~skC)), pk(~skCe.1), 
+                                                    encaps(~ke.1, pk(~skCe.1))>,
+                                                   ~ltk.1)
+                                         ) @ #vk.50 )
+                                    case TA_RESPONSE_T
+                                    solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.63 )
+                                      case CA_Sign_ltk
+                                      solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.71 )
+                                        case CA_Sign_ltk
+                                        solve( !KU( ~r2 ) @ #vk.53 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( ~r2.1 ) @ #vk.64 )
+                                            case TA_CHALLENGE_C
+                                            solve( !KU( ~id_c ) @ #vk.66 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( ~r1 ) @ #vk.67 )
+                                                case TA_CHALLENGE_C
+                                                solve( !KU( ~id_c.1 ) @ #vk.70 )
+                                                  case TA_CHALLENGE_C
+                                                  solve( !KU( ~r1.1 ) @ #vk.71 )
+                                                    case TA_CHALLENGE_C
+                                                    solve( !KU( cert(pk(~skT),
+                                                                     sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                                     $T)
+                                                           ) @ #vk.42 )
+                                                      case CA_Sign_ltk
+                                                      solve( !KU( kdf(<'CNF', 
+                                                                       cert(pk(~skT),
+                                                                            sign(<pk(~skT), $T, 'terminal'>,
+                                                                                 ca_sk),
+                                                                            $T), 
+                                                                       cert(pk(~ltk),
+                                                                            sign(<pk(~ltk), $C, 'chip'>,
+                                                                                 ca_sk),
+                                                                            $C), 
+                                                                       ~r2, encaps(~k, pk(~ltk)), pk(~skCe), 
+                                                                       encaps(~ke, pk(~skCe))>,
+                                                                      <~k, ~ke>)
+                                                             ) @ #vk.45 )
+                                                        case TA_COMPLETE_C
+                                                        solve( !KU( cert(pk(~ltk),
+                                                                         sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                                         $C)
+                                                               ) @ #vk.59 )
+                                                          case CA_Sign_ltk
+                                                          solve( !KU( pk(~skCe) ) @ #vk.60 )
+                                                            case TA_CHALLENGE_C
+                                                            solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.40 )
+                                                              case TA_RESPONSE_T
+                                                              solve( !KU( encaps(~ke, pk(~skCe)) ) @ #vk.42 )
+                                                                case TA_RESPONSE_T
+                                                                solve( !KU( cert(pk(~ltk.1),
+                                                                                 sign(<pk(~ltk.1), $T, 
+                                                                                       'terminal'>,
+                                                                                      ca_sk),
+                                                                                 $T)
+                                                                       ) @ #vk.64 )
+                                                                  case CA_Sign_ltk
+                                                                  solve( !KU( kdf(<'CNF', 
+                                                                                   cert(pk(~ltk.1),
+                                                                                        sign(<pk(~ltk.1), $T, 
+                                                                                              'terminal'>,
+                                                                                             ca_sk),
+                                                                                        $T), 
+                                                                                   cert(pk(~skC),
+                                                                                        sign(<pk(~skC), $C, 
+                                                                                              'chip'>,
+                                                                                             ca_sk),
+                                                                                        $C), 
+                                                                                   ~r2.1, 
+                                                                                   encaps(~k.1, pk(~skC)), 
+                                                                                   pk(~skCe.1), 
+                                                                                   encaps(~ke.1, pk(~skCe.1))
+                                                                                  >,
+                                                                                  <~k.1, ~ke.1>)
+                                                                         ) @ #vk.65 )
+                                                                    case TA_COMPLETE_C
+                                                                    solve( !KU( cert(pk(~skC),
+                                                                                     sign(<pk(~skC), $C, 
+                                                                                           'chip'>,
+                                                                                          ca_sk),
+                                                                                     $C)
+                                                                           ) @ #vk.68 )
+                                                                      case CA_Sign_ltk
+                                                                      solve( !KU( pk(~skCe.1) ) @ #vk.69 )
+                                                                        case TA_CHALLENGE_C
+                                                                        solve( !KU( encaps(~k.1, pk(~skC))
+                                                                               ) @ #vk.66 )
+                                                                          case TA_RESPONSE_T
+                                                                          solve( !KU( encaps(~ke.1,
+                                                                                             pk(~skCe.1))
+                                                                                 ) @ #vk.67 )
+                                                                            case TA_RESPONSE_T
+                                                                            SOLVED // trace found
+                                                                          qed
+                                                                        qed
+                                                                      qed
+                                                                    qed
+                                                                  qed
+                                                                qed
+                                                              qed
+                                                            qed
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           skCe, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.28 )
+            case TA_RESPONSE_T
+            solve( !KU( ~ke ) @ #vk.29 )
+              case TA_RESPONSE_T
+              solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                     ) @ #vk.17 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.30 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.30 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_cert
+                solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.33 )
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.31 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.31 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_sign
+                  by solve( !KU( ca_sk ) @ #vk.37 )
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           skCe, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              by contradiction /* from formulas */
+            next
+              case split_case_2
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.22 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                 ~ltk.1)
+                       ) @ #vk.25 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'CNF', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  <~k, ~ke>)
+                         ) @ #vk.4 )
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.50 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.51 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.52 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.48 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.33 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.28 )
+            case TA_RESPONSE_T
+            solve( !KU( ~ke ) @ #vk.29 )
+              case TA_RESPONSE_T
+              solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                     ) @ #vk.17 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.30 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.30 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_cert
+                solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.33 )
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.31 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.31 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_sign
+                  by solve( !KU( ca_sk ) @ #vk.37 )
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+       ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z), pkCe, 
+                       encaps(~ke, pkCe)>,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <k.1, encaps(~k, z)>,
+                      <ke.1, encaps(~ke, pkCe)>, pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                         encaps(~ke, pkCe)>,
+                        <~k, ~ke>)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.28 )
+            case TA_RESPONSE_T
+            solve( !KU( ~ke ) @ #vk.29 )
+              case TA_RESPONSE_T
+              solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                     ) @ #vk.17 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.30 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.30 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_cert
+                solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.33 )
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.31 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.31 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_sign
+                  by solve( !KU( ca_sk ) @ #vk.37 )
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      by contradiction /* from formulas */
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                                 encaps(~ke, pkCe)>,
+                                <~k, ~ke>),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>,
+                            <~ke, encaps(~ke, pkCe)>, pkCe
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, skCe, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z, z.1>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~skCe,
+                                   ~r2
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                                 encaps(~ke, pkCe)>,
+                                <~k, ~ke>),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>,
+                            <~ke, encaps(~ke, pkCe)>, pkCe
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, skCe, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                   pk(~skCe), cipe>,
+                                  <z, z.1>),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~skCe,
+                                   ~r2
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_T
+    solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip>, <ke, cipe>, pkCe
+           ) ▶₁ #i )
+      case TA_RESPONSE_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                               cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z), pkCe, 
+                               encaps(~ke, pkCe)>,
+                              <~k, ~ke>),
+                          sid2, $T, 'terminal', B
+               ) @ #j )
+          case CA_FINISH_T
+          by contradiction /* from formulas */
+        qed
+      qed
+    qed
+  next
+    case TA_COMPLETE_C
+    solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, skCe, r2
+           ) ▶₁ #i )
+      case TA_CHALLENGE_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                                 pk(~skCe), cipe>,
+                                <z, z.1>),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, skCe, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>,
+                          <ke, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.5 )
+                  case TA_RESPONSE_T
+                  solve( !KU( sign(<'CA', 
+                                    cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                    encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                   ~ltk.1)
+                         ) @ #vk.7 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.16 )
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.50 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ke ) @ #vk.51 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.52 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( ~ltk.1 ) @ #vk.48 )
+                      case Corrupt_ltk
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                      <~k, ~ke>)
+                             ) @ #vk.22 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.53 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ke ) @ #vk.54 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.55 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.33 )
+                    case Corrupt_ltk
+                    solve( !KU( sign(<'CA', 
+                                      cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                      cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                      encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                     ~ltk.1)
+                           ) @ #vk.8 )
+                      case TA_RESPONSE_T
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                      <~k, ~ke>)
+                             ) @ #vk.17 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.46 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ke ) @ #vk.47 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.48 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                      <~k, ~ke>)
+                             ) @ #vk.20 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.48 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ke ) @ #vk.49 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.50 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, skCe, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z, z.1>),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>,
+                          <z.1, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.6 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                 ~ltk.1)
+                       ) @ #vk.8 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'KEY', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  <~k, ~ke>)
+                         ) @ #vk.3 )
+                    case Reveal_session
+                    by contradiction /* from formulas */
+                  next
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.51 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.52 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.53 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.49 )
+                    case Corrupt_ltk
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.6 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.54 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ke ) @ #vk.55 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.56 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.34 )
+                  case Corrupt_ltk
+                  solve( !KU( sign(<'CA', 
+                                    cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                    encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                   ~ltk.1)
+                         ) @ #vk.9 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.47 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ke ) @ #vk.48 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.49 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.49 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ke ) @ #vk.50 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.51 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, skCe, r2
+       ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+      case CA_Sign_ltk
+      solve( !KU( sign(<'TA', ~id_c, ~r1>, x) ) @ #vk.5 )
+        case c_sign
+        solve( !KU( sign(<'CA', 
+                          cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                          pk(~skCe), cipe>,
+                         x)
+               ) @ #vk.7 )
+          case c_sign
+          solve( !KU( cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T)
+                 ) @ #vk.16 )
+            case CA_Sign_ltk
+            solve( !KU( ~ltk ) @ #vk.22 )
+              case Corrupt_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                solve( !KU( ~iid ) @ #vk.21 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~id_c ) @ #vk.26 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~r1 ) @ #vk.27 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~r2 ) @ #vk.30 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( cert(pk(~ltk.1), sign(<pk(~ltk.1), $C, 'chip'>, ca_sk), $C)
+                               ) @ #vk.30 )
+                          case CA_Sign_ltk
+                          solve( !KU( pk(~skCe) ) @ #vk.31 )
+                            case TA_CHALLENGE_C
+                            SOLVED // trace found
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !KU( sign(<'CA', 
+                      cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                      cert(x.1, sign(<x.1, $A, 'chip'>, ca_sk), $A), r2, cip, pkCe, cipe>,
+                     x)
+           ) @ #vk.17 )
+      case c_sign
+      solve( !KU( cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T)
+             ) @ #vk.2 )
+        case CA_Sign_ltk
+        solve( !KU( ~ltk ) @ #vk.28 )
+          case Corrupt_ltk
+          solve( !KU( sign(<'TA', IDc, r1>, ~ltk) ) @ #vk.13 )
+            case c_sign
+            solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.17 )
+              case CA_Sign_ltk
+              solve( !KU( kdf(<'CNF', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                               cert(pk(~ltk.1), sign(<pk(~ltk.1), $A.1, 'chip'>, ca_sk), $A.1), r2, 
+                               cip, pkCe, cipe>,
+                              <z, z.1>)
+                     ) @ #vk.29 )
+                case c_kdf
+                solve( splitEqs(0) )
+                  case split_case_3
+                  solve( !KU( encaps(z, pk(~ltk.2)) ) @ #vk.29 )
+                    case c_encaps
+                    solve( !KU( decaps(cipe, skCe) ) @ #vk.37 )
+                      case c_decaps
+                      solve( !KU( pk(~ltk.2) ) @ #vk.38 )
+                        case CA_Sign_ltk
+                        SOLVED // trace found
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !Pk( T, pk(x.1), 'terminal' ) ▶₂ #i )
+    case Generate_terminal_key_pair
+    solve( !KU( sign(<'TA', IDc, r1>, ~ltk) ) @ #vk.7 )
+      case TA_RESPONSE_T
+      by contradiction /* from formulas */
+    next
+      case c_sign
+      solve( !KU( ~ltk ) @ #vk.26 )
+        case Corrupt_ltk
+        by contradiction /* from formulas */
+      qed
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, skCe, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                               pk(~skCe), cipe>,
+                              <z, z.1>),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip, 
+                           pk(~skCe), cipe>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>,
+                          <z.1, cipe>, pk(~skCe)
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.6 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                 ~ltk.1)
+                       ) @ #vk.8 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'KEY', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                  <~k, ~ke>)
+                         ) @ #vk.3 )
+                    case Reveal_session
+                    by contradiction /* from formulas */
+                  next
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.51 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ke ) @ #vk.52 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.53 )
+                          case Corrupt_ltk
+                          by solve( !KU( ~skCe ) @ #vk.54 )
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.49 )
+                    case Corrupt_ltk
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.6 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.54 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ke ) @ #vk.55 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.56 )
+                            case Corrupt_ltk
+                            by solve( !KU( ~skCe ) @ #vk.57 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.34 )
+                  case Corrupt_ltk
+                  solve( !KU( sign(<'CA', 
+                                    cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                    encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                   ~ltk.1)
+                         ) @ #vk.9 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.47 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ke ) @ #vk.48 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.49 )
+                            case Corrupt_ltk
+                            by solve( !KU( ~skCe ) @ #vk.50 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk)), pk(~skCe), encaps(~ke, pk(~skCe))>,
+                                    <~k, ~ke>)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.49 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ke ) @ #vk.50 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.51 )
+                            case Corrupt_ltk
+                            by solve( !KU( ~skCe ) @ #vk.52 )
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 981.75s
+  
+  session_exist (exists-trace): verified (21 steps)
+  two_session_exist (exists-trace): verified (40 steps)
+  weak_agreement_C (all-traces): verified (8 steps)
+  weak_agreement_T (all-traces): verified (20 steps)
+  agreement_C (all-traces): verified (20 steps)
+  agreement_T (all-traces): verified (20 steps)
+  aliveness (all-traces): verified (21 steps)
+  session_uniqueness (all-traces): verified (37 steps)
+  consistency (all-traces): verified (35 steps)
+  key_secrecy (all-traces): verified (37 steps)
+  chip_hiding (all-traces): falsified - found trace (16 steps)
+  nonRepudiation_terminal (exists-trace): verified (14 steps)
+  nonRepudiation_chip (exists-trace): falsified - no trace found (7 steps)
+  pfs (all-traces): verified (37 steps)
+
+==============================================================================
diff --git a/results/45991790.err.ALL_SigPQEAC_TAMARIN b/results/45991790.err.ALL_SigPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..e8b69d9cbe3f08bce37f20bdff07736861fc19fc
--- /dev/null
+++ b/results/45991790.err.ALL_SigPQEAC_TAMARIN
@@ -0,0 +1,28 @@
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991790.out.ALL_SigPQEAC_TAMARIN b/results/45991790.out.ALL_SigPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..9a2b1ad6282a96d5e99de8f14487fb6f3813f7b1
--- /dev/null
+++ b/results/45991790.out.ALL_SigPQEAC_TAMARIN
@@ -0,0 +1,3694 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory FastSigPQEAC begin
+
+// Function signature and definition of the equational theory E
+
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, decaps/2, encaps/2, fst/1, kdf/2, pair/2, pk/1, sign/2,
+           snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    decaps(encaps(k, pk(sk)), sk) = k,
+    fst(<x.1, x.2>) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [ !Pk( $A, pk(~ltk), 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [ Out( <certT, '1', 't'> ), Out( ~iid ), TAInitT( <$T, ~iid> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [
+   In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ), Fr( ~r2 ),
+   !Cert( $C, certC, 'chip' )
+   ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, certC, ~r2, '2', 'c'> ), Out( ~iid ),
+   TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~r2 )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [
+     In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ), Fr( ~r2 ),
+     !Cert( $C, certC, 'chip' )
+     ]
+    --[ Eq( z, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, certC, ~r2, '2', 'c'> ), Out( ~iid ),
+     TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~r2 )
+     ]
+    variants (modulo AC)
+    1. certT = certT.15
+       z     = verify(cert_sig(certT.15),
+                      <cert_pk(certT.15), cert_id(certT.15), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(x.16, sign(<x.16, x.17, 'terminal'>, ca_sk), x.17)
+       z     = true
+    
+    3. certT = cert(x.17, x.18, x.19)
+       z     = verify(x.18, <x.17, x.19, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, certC, r2, '2', 'c'> ), TAInitT( <$T, iid> ),
+   !Ltk( $T, ~skT, 'terminal' ), !Cert( $T, certT, 'terminal' ), Fr( ~k )
+   ]
+  --[ Eq( verify_cert(certC, 'chip'), true ) ]->
+   [
+   Out( <encaps(~k, cert_pk(certC)), sign(<'TA', id_c, r1>, ~skT), 
+         sign(<'CA', certT, certC, r2, encaps(~k, cert_pk(certC))>, ~skT), '3', 
+         't'>
+   ),
+   CAInitT( <$T, iid>, id_c, certC, r2, <~k, encaps(~k, cert_pk(certC))> )
+   ]
+
+  /*
+  rule (modulo AC) TA_RESPONSE_T:
+     [
+     In( <id_c, r1, certC, r2, '2', 'c'> ), TAInitT( <$T, iid> ),
+     !Ltk( $T, ~skT, 'terminal' ), !Cert( $T, certT, 'terminal' ), Fr( ~k )
+     ]
+    --[ Eq( z.1, true ) ]->
+     [
+     Out( <encaps(~k, z), sign(<'TA', id_c, r1>, ~skT), 
+           sign(<'CA', certT, certC, r2, encaps(~k, z)>, ~skT), '3', 't'>
+     ),
+     CAInitT( <$T, iid>, id_c, certC, r2, <~k, encaps(~k, z)> )
+     ]
+    variants (modulo AC)
+    1. certC = certC.20
+       z     = cert_pk(certC.20)
+       z.1   = verify(cert_sig(certC.20),
+                      <cert_pk(certC.20), cert_id(certC.20), 'chip'>, pk(ca_sk))
+    
+    2. certC = cert(z.57, sign(<z.57, x.100, 'chip'>, ca_sk), x.100)
+       z     = z.57
+       z.1   = true
+    
+    3. certC = cert(z.58, x.101, x.102)
+       z     = z.58
+       z.1   = verify(x.101, <z.58, x.102, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_COMPLETE_C:
+   [
+   In( <cip, s1, s2, '3', 't'> ),
+   TAChallengeC( <$C, iid>, certT, id_c, r1, r2 ), !Ltk( $C, ~skC, 'chip' ),
+   !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( verify(s1, <'TA', id_c, r1>, cert_pk(certT)), true ),
+  Eq( verify(s2, <'CA', certT, certC, r2, cip>, cert_pk(certT)), true ),
+  CompletedTA( $C, iid, cert_id(certT) ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, decaps(cip, ~skC)),
+             <certT, certC, r2, cip>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <kdf(<'CNF', certT, certC, r2, cip>, decaps(cip, ~skC)), '4', 'c'>
+   ),
+   TACompleteC( <$C, iid>, certT, id_c, r1, r2 )
+   ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [
+     In( <cip, s1, s2, '3', 't'> ),
+     TAChallengeC( <$C, iid>, certT, id_c, r1, r2 ), !Ltk( $C, ~skC, 'chip' ),
+     !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( z.1, true ), Eq( z.2, true ), CompletedTA( $C, iid, z.3 ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, z),
+               <certT, certC, r2, cip>, $C, 'chip', z.3
+    )
+    ]->
+     [
+     Out( <kdf(<'CNF', certT, certC, r2, cip>, z), '4', 'c'> ),
+     TACompleteC( <$C, iid>, certT, id_c, r1, r2 )
+     ]
+    variants (modulo AC)
+     1. ~skC  = ~skC.32
+        certC = certC.33
+        certT = certT.34
+        cip   = cip.35
+        id_c  = id_c.36
+        r1    = r1.38
+        r2    = r2.39
+        s1    = s1.40
+        s2    = s2.41
+        z     = decaps(cip.35, ~skC.32)
+        z.1   = verify(s1.40, <'TA', id_c.36, r1.38>, cert_pk(certT.34))
+        z.2   = verify(s2.41, <'CA', certT.34, certC.33, r2.39, cip.35>,
+                       cert_pk(certT.34))
+        z.3   = cert_id(certT.34)
+    
+     2. ~skC  = ~skC.37
+        certC = certC.38
+        certT = certT.39
+        cip   = encaps(z.51, pk(~skC.37))
+        id_c  = id_c.41
+        r1    = r1.43
+        r2    = r2.44
+        s1    = s1.45
+        s2    = s2.46
+        z     = z.51
+        z.1   = verify(s1.45, <'TA', id_c.41, r1.43>, cert_pk(certT.39))
+        z.2   = verify(s2.46,
+                       <'CA', certT.39, certC.38, r2.44, encaps(z.51, pk(~skC.37))>,
+                       cert_pk(certT.39))
+        z.3   = cert_id(certT.39)
+    
+     3. ~skC  = ~skC.150
+        certC = certC.151
+        certT = cert(x.296, x.297, z.169)
+        cip   = cip.153
+        id_c  = id_c.154
+        r1    = r1.156
+        r2    = r2.157
+        s1    = s1.158
+        s2    = s2.159
+        z     = decaps(cip.153, ~skC.150)
+        z.1   = verify(s1.158, <'TA', id_c.154, r1.156>, x.296)
+        z.2   = verify(s2.159,
+                       <'CA', cert(x.296, x.297, z.169), certC.151, r2.157, cip.153>, x.296)
+        z.3   = z.169
+    
+     4. ~skC  = ~skC.150
+        certC = certC.151
+        certT = cert(pk(x.296), x.297, z.169)
+        cip   = cip.153
+        id_c  = id_c.154
+        r1    = r1.156
+        r2    = r2.157
+        s1    = sign(<'TA', id_c.154, r1.156>, x.296)
+        s2    = s2.159
+        z     = decaps(cip.153, ~skC.150)
+        z.1   = true
+        z.2   = verify(s2.159,
+                       <'CA', cert(pk(x.296), x.297, z.169), certC.151, r2.157, cip.153>,
+                       pk(x.296))
+        z.3   = z.169
+    
+     5. ~skC  = ~skC.151
+        certC = certC.152
+        certT = cert(pk(x.298), x.299, z.170)
+        cip   = cip.154
+        id_c  = id_c.155
+        r1    = r1.157
+        r2    = r2.158
+        s1    = s1.159
+        s2    = sign(<'CA', cert(pk(x.298), x.299, z.170), certC.152, r2.158, 
+                      cip.154>,
+                     x.298)
+        z     = decaps(cip.154, ~skC.151)
+        z.1   = verify(s1.159, <'TA', id_c.155, r1.157>, pk(x.298))
+        z.2   = true
+        z.3   = z.170
+    
+     6. ~skC  = ~skC.151
+        certC = certC.152
+        certT = cert(pk(x.298), x.299, z.170)
+        cip   = cip.154
+        id_c  = id_c.155
+        r1    = r1.157
+        r2    = r2.158
+        s1    = sign(<'TA', id_c.155, r1.157>, x.298)
+        s2    = sign(<'CA', cert(pk(x.298), x.299, z.170), certC.152, r2.158, 
+                      cip.154>,
+                     x.298)
+        z     = decaps(cip.154, ~skC.151)
+        z.1   = true
+        z.2   = true
+        z.3   = z.170
+    
+     7. ~skC  = ~skC.152
+        certC = certC.153
+        certT = cert(x.300, x.301, z.171)
+        cip   = encaps(z.166, pk(~skC.152))
+        id_c  = id_c.156
+        r1    = r1.158
+        r2    = r2.159
+        s1    = s1.160
+        s2    = s2.161
+        z     = z.166
+        z.1   = verify(s1.160, <'TA', id_c.156, r1.158>, x.300)
+        z.2   = verify(s2.161,
+                       <'CA', cert(x.300, x.301, z.171), certC.153, r2.159, 
+                        encaps(z.166, pk(~skC.152))>,
+                       x.300)
+        z.3   = z.171
+    
+     8. ~skC  = ~skC.152
+        certC = certC.153
+        certT = cert(pk(x.300), x.301, z.171)
+        cip   = encaps(z.166, pk(~skC.152))
+        id_c  = id_c.156
+        r1    = r1.158
+        r2    = r2.159
+        s1    = s1.160
+        s2    = sign(<'CA', cert(pk(x.300), x.301, z.171), certC.153, r2.159, 
+                      encaps(z.166, pk(~skC.152))>,
+                     x.300)
+        z     = z.166
+        z.1   = verify(s1.160, <'TA', id_c.156, r1.158>, pk(x.300))
+        z.2   = true
+        z.3   = z.171
+    
+     9. ~skC  = ~skC.152
+        certC = certC.153
+        certT = cert(pk(x.300), x.301, z.171)
+        cip   = encaps(z.166, pk(~skC.152))
+        id_c  = id_c.156
+        r1    = r1.158
+        r2    = r2.159
+        s1    = sign(<'TA', id_c.156, r1.158>, x.300)
+        s2    = s2.161
+        z     = z.166
+        z.1   = true
+        z.2   = verify(s2.161,
+                       <'CA', cert(pk(x.300), x.301, z.171), certC.153, r2.159, 
+                        encaps(z.166, pk(~skC.152))>,
+                       pk(x.300))
+        z.3   = z.171
+    
+    10. ~skC  = ~skC.152
+        certC = certC.153
+        certT = cert(pk(x.300), x.301, z.171)
+        cip   = encaps(z.166, pk(~skC.152))
+        id_c  = id_c.156
+        r1    = r1.158
+        r2    = r2.159
+        s1    = sign(<'TA', id_c.156, r1.158>, x.300)
+        s2    = sign(<'CA', cert(pk(x.300), x.301, z.171), certC.153, r2.159, 
+                      encaps(z.166, pk(~skC.152))>,
+                     x.300)
+        z     = z.166
+        z.1   = true
+        z.2   = true
+        z.3   = z.171
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <kCNF_C, '4', 'c'> ),
+   CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( kdf(<'CNF', certT, certC, r2, cip>, k), kCNF_C ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, k),
+             <certT, certC, r2, cip>, $T, 'terminal', cert_id(certC)
+  ),
+  Finished( <certT, certC, r2, cip> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T, kdf(<'KEY', certT, certC, r2, cip>, k) ),
+   !SessionReveal( <certT, certC, r2, cip>,
+                   kdf(<'KEY', certT, certC, r2, cip>, k)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <kCNF_C, '4', 'c'> ),
+     CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( kdf(<'CNF', certT, certC, r2, cip>, k), kCNF_C ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, k),
+               <certT, certC, r2, cip>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, r2, cip> )
+    ]->
+     [
+     CAFinishT( z, $T, kdf(<'KEY', certT, certC, r2, cip>, k) ),
+     !SessionReveal( <certT, certC, r2, cip>,
+                     kdf(<'KEY', certT, certC, r2, cip>, k)
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.15
+       z     = cert_id(certC.15)
+    
+    2. certC = cert(x.41, x.42, z.28)
+       z     = z.28
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, IDc, r1, sT, certC, r2, cip, sC, kCNF> ),
+   !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(certC) ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(sT, <'TA', IDc, r1>, cert_pk(certT)), true ),
+  Eq( verify(sC, <'CA', certT, certC, r2, cip>, cert_pk(certT)), true ),
+  Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip>, decaps(cip, skC)) ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, IDc, r1, sT, certC, r2, cip, sC, kCNF> ),
+     !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( z.1, true ), Eq( z.2, true ), Eq( z.3, true ),
+    Eq( z.4, true ), Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip>, z.5) ),
+    ValidTrans( C, 'chip', z.6 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. IDc   = IDc.31
+        certC = certC.32
+        certT = certT.33
+        cip   = cip.34
+        r1    = r1.36
+        r2    = r2.37
+        sC    = sC.38
+        sT    = sT.39
+        skC   = skC.40
+        z     = cert_id(certC.32)
+        z.1   = verify(cert_sig(certT.33),
+                       <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.32),
+                       <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.39, <'TA', IDc.31, r1.36>, cert_pk(certT.33))
+        z.4   = verify(sC.38, <'CA', certT.33, certC.32, r2.37, cip.34>,
+                       cert_pk(certT.33))
+        z.5   = decaps(cip.34, skC.40)
+        z.6   = cert_id(certT.33)
+    
+     2. IDc   = IDc.39
+        certC = certC.40
+        certT = certT.41
+        cip   = encaps(z.56, pk(skC.48))
+        r1    = r1.44
+        r2    = r2.45
+        sC    = sC.46
+        sT    = sT.47
+        skC   = skC.48
+        z     = cert_id(certC.40)
+        z.1   = verify(cert_sig(certT.41),
+                       <cert_pk(certT.41), cert_id(certT.41), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.40),
+                       <cert_pk(certC.40), cert_id(certC.40), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.47, <'TA', IDc.39, r1.44>, cert_pk(certT.41))
+        z.4   = verify(sC.46,
+                       <'CA', certT.41, certC.40, r2.45, encaps(z.56, pk(skC.48))>,
+                       cert_pk(certT.41))
+        z.5   = z.56
+        z.6   = cert_id(certT.41)
+    
+     3. IDc   = IDc.41
+        certC = certC.42
+        certT = cert(x.79, sign(<x.79, z.59, 'terminal'>, ca_sk), z.59)
+        cip   = cip.44
+        r1    = r1.46
+        r2    = r2.47
+        sC    = sC.48
+        sT    = sT.49
+        skC   = skC.50
+        z     = cert_id(certC.42)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.42),
+                       <cert_pk(certC.42), cert_id(certC.42), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.49, <'TA', IDc.41, r1.46>, x.79)
+        z.4   = verify(sC.48,
+                       <'CA', cert(x.79, sign(<x.79, z.59, 'terminal'>, ca_sk), z.59), 
+                        certC.42, r2.47, cip.44>,
+                       x.79)
+        z.5   = decaps(cip.44, skC.50)
+        z.6   = z.59
+    
+     4. IDc   = IDc.41
+        certC = certC.42
+        certT = cert(x.79, sign(<x.79, z.59, 'terminal'>, ca_sk), z.59)
+        cip   = encaps(z.58, pk(skC.50))
+        r1    = r1.46
+        r2    = r2.47
+        sC    = sC.48
+        sT    = sT.49
+        skC   = skC.50
+        z     = cert_id(certC.42)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.42),
+                       <cert_pk(certC.42), cert_id(certC.42), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.49, <'TA', IDc.41, r1.46>, x.79)
+        z.4   = verify(sC.48,
+                       <'CA', cert(x.79, sign(<x.79, z.59, 'terminal'>, ca_sk), z.59), 
+                        certC.42, r2.47, encaps(z.58, pk(skC.50))>,
+                       x.79)
+        z.5   = z.58
+        z.6   = z.59
+    
+     5. IDc   = IDc.41
+        certC = cert(x.79, sign(<x.79, z.52, 'chip'>, ca_sk), z.52)
+        certT = certT.43
+        cip   = cip.44
+        r1    = r1.46
+        r2    = r2.47
+        sC    = sC.48
+        sT    = sT.49
+        skC   = skC.50
+        z     = z.52
+        z.1   = verify(cert_sig(certT.43),
+                       <cert_pk(certT.43), cert_id(certT.43), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.49, <'TA', IDc.41, r1.46>, cert_pk(certT.43))
+        z.4   = verify(sC.48,
+                       <'CA', certT.43, cert(x.79, sign(<x.79, z.52, 'chip'>, ca_sk), z.52), 
+                        r2.47, cip.44>,
+                       cert_pk(certT.43))
+        z.5   = decaps(cip.44, skC.50)
+        z.6   = cert_id(certT.43)
+    
+     6. IDc   = IDc.41
+        certC = cert(x.79, sign(<x.79, z.52, 'chip'>, ca_sk), z.52)
+        certT = certT.43
+        cip   = encaps(z.58, pk(skC.50))
+        r1    = r1.46
+        r2    = r2.47
+        sC    = sC.48
+        sT    = sT.49
+        skC   = skC.50
+        z     = z.52
+        z.1   = verify(cert_sig(certT.43),
+                       <cert_pk(certT.43), cert_id(certT.43), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.49, <'TA', IDc.41, r1.46>, cert_pk(certT.43))
+        z.4   = verify(sC.48,
+                       <'CA', certT.43, cert(x.79, sign(<x.79, z.52, 'chip'>, ca_sk), z.52), 
+                        r2.47, encaps(z.58, pk(skC.50))>,
+                       cert_pk(certT.43))
+        z.5   = z.58
+        z.6   = cert_id(certT.43)
+    
+     7. IDc   = IDc.42
+        certC = certC.43
+        certT = cert(x.80, x.81, z.60)
+        cip   = cip.45
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sC.49
+        sT    = sT.50
+        skC   = skC.51
+        z     = cert_id(certC.43)
+        z.1   = verify(x.81, <x.80, z.60, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.43),
+                       <cert_pk(certC.43), cert_id(certC.43), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, x.80)
+        z.4   = verify(sC.49,
+                       <'CA', cert(x.80, x.81, z.60), certC.43, r2.48, cip.45>, x.80)
+        z.5   = decaps(cip.45, skC.51)
+        z.6   = z.60
+    
+     8. IDc   = IDc.42
+        certC = certC.43
+        certT = cert(x.80, x.81, z.60)
+        cip   = encaps(z.59, pk(skC.51))
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sC.49
+        sT    = sT.50
+        skC   = skC.51
+        z     = cert_id(certC.43)
+        z.1   = verify(x.81, <x.80, z.60, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.43),
+                       <cert_pk(certC.43), cert_id(certC.43), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, x.80)
+        z.4   = verify(sC.49,
+                       <'CA', cert(x.80, x.81, z.60), certC.43, r2.48, encaps(z.59, pk(skC.51))
+                       >,
+                       x.80)
+        z.5   = z.59
+        z.6   = z.60
+    
+     9. IDc   = IDc.42
+        certC = certC.43
+        certT = cert(pk(x.81), sign(<pk(x.81), z.60, 'terminal'>, ca_sk), z.60)
+        cip   = cip.45
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sign(<'CA', 
+                      cert(pk(x.81), sign(<pk(x.81), z.60, 'terminal'>, ca_sk), z.60), 
+                      certC.43, r2.48, cip.45>,
+                     x.81)
+        sT    = sT.50
+        skC   = skC.51
+        z     = cert_id(certC.43)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.43),
+                       <cert_pk(certC.43), cert_id(certC.43), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, pk(x.81))
+        z.4   = true
+        z.5   = decaps(cip.45, skC.51)
+        z.6   = z.60
+    
+    10. IDc   = IDc.42
+        certC = certC.43
+        certT = cert(pk(x.81), sign(<pk(x.81), z.60, 'terminal'>, ca_sk), z.60)
+        cip   = encaps(z.59, pk(skC.51))
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sign(<'CA', 
+                      cert(pk(x.81), sign(<pk(x.81), z.60, 'terminal'>, ca_sk), z.60), 
+                      certC.43, r2.48, encaps(z.59, pk(skC.51))>,
+                     x.81)
+        sT    = sT.50
+        skC   = skC.51
+        z     = cert_id(certC.43)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.43),
+                       <cert_pk(certC.43), cert_id(certC.43), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, pk(x.81))
+        z.4   = true
+        z.5   = z.59
+        z.6   = z.60
+    
+    11. IDc   = IDc.42
+        certC = cert(x.80, x.81, z.53)
+        certT = certT.44
+        cip   = cip.45
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sC.49
+        sT    = sT.50
+        skC   = skC.51
+        z     = z.53
+        z.1   = verify(cert_sig(certT.44),
+                       <cert_pk(certT.44), cert_id(certT.44), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.81, <x.80, z.53, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, cert_pk(certT.44))
+        z.4   = verify(sC.49,
+                       <'CA', certT.44, cert(x.80, x.81, z.53), r2.48, cip.45>,
+                       cert_pk(certT.44))
+        z.5   = decaps(cip.45, skC.51)
+        z.6   = cert_id(certT.44)
+    
+    12. IDc   = IDc.42
+        certC = cert(x.80, x.81, z.53)
+        certT = certT.44
+        cip   = encaps(z.59, pk(skC.51))
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sC.49
+        sT    = sT.50
+        skC   = skC.51
+        z     = z.53
+        z.1   = verify(cert_sig(certT.44),
+                       <cert_pk(certT.44), cert_id(certT.44), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.81, <x.80, z.53, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, cert_pk(certT.44))
+        z.4   = verify(sC.49,
+                       <'CA', certT.44, cert(x.80, x.81, z.53), r2.48, encaps(z.59, pk(skC.51))
+                       >,
+                       cert_pk(certT.44))
+        z.5   = z.59
+        z.6   = cert_id(certT.44)
+    
+    13. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.82), x.83, z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', cert(pk(x.82), x.83, z.61), certC.44, r2.49, cip.46>,
+                     x.82)
+        sT    = sT.51
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = verify(x.83, <pk(x.82), z.61, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, pk(x.82))
+        z.4   = true
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    14. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.82), x.83, z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', cert(pk(x.82), x.83, z.61), certC.44, r2.49, 
+                      encaps(z.60, pk(skC.52))>,
+                     x.82)
+        sT    = sT.51
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = verify(x.83, <pk(x.82), z.61, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, pk(x.82))
+        z.4   = true
+        z.5   = z.60
+        z.6   = z.61
+    
+    15. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sC.50
+        sT    = sign(<'TA', IDc.43, r1.48>, x.83)
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.50,
+                       <'CA', cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                        certC.44, r2.49, cip.46>,
+                       pk(x.83))
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    16. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', 
+                      cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                      certC.44, r2.49, cip.46>,
+                     x.83)
+        sT    = sign(<'TA', IDc.43, r1.48>, x.83)
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    17. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sC.50
+        sT    = sign(<'TA', IDc.43, r1.48>, x.83)
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.50,
+                       <'CA', cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                        certC.44, r2.49, encaps(z.60, pk(skC.52))>,
+                       pk(x.83))
+        z.5   = z.60
+        z.6   = z.61
+    
+    18. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', 
+                      cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                      certC.44, r2.49, encaps(z.60, pk(skC.52))>,
+                     x.83)
+        sT    = sign(<'TA', IDc.43, r1.48>, x.83)
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.60
+        z.6   = z.61
+    
+    19. IDc   = IDc.43
+        certC = cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54)
+        certT = cert(x.83, sign(<x.83, z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sC.50
+        sT    = sT.51
+        skC   = skC.52
+        z     = z.54
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, x.83)
+        z.4   = verify(sC.50,
+                       <'CA', cert(x.83, sign(<x.83, z.61, 'terminal'>, ca_sk), z.61), 
+                        cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54), r2.49, cip.46>,
+                       x.83)
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    20. IDc   = IDc.43
+        certC = cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54)
+        certT = cert(x.83, sign(<x.83, z.61, 'terminal'>, ca_sk), z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sC.50
+        sT    = sT.51
+        skC   = skC.52
+        z     = z.54
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, x.83)
+        z.4   = verify(sC.50,
+                       <'CA', cert(x.83, sign(<x.83, z.61, 'terminal'>, ca_sk), z.61), 
+                        cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54), r2.49, 
+                        encaps(z.60, pk(skC.52))>,
+                       x.83)
+        z.5   = z.60
+        z.6   = z.61
+    
+    21. IDc   = IDc.43
+        certC = cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54)
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', 
+                      cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                      cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54), r2.49, cip.46>,
+                     x.83)
+        sT    = sT.51
+        skC   = skC.52
+        z     = z.54
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, pk(x.83))
+        z.4   = true
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    22. IDc   = IDc.43
+        certC = cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54)
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', 
+                      cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                      cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54), r2.49, 
+                      encaps(z.60, pk(skC.52))>,
+                     x.83)
+        sT    = sT.51
+        skC   = skC.52
+        z     = z.54
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, pk(x.83))
+        z.4   = true
+        z.5   = z.60
+        z.6   = z.61
+    
+    23. IDc   = IDc.44
+        certC = certC.45
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sign(<'TA', IDc.44, r1.49>, x.84)
+        skC   = skC.53
+        z     = cert_id(certC.45)
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.51,
+                       <'CA', cert(pk(x.84), x.85, z.62), certC.45, r2.50, cip.47>, pk(x.84))
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    24. IDc   = IDc.44
+        certC = certC.45
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', cert(pk(x.84), x.85, z.62), certC.45, r2.50, cip.47>,
+                     x.84)
+        sT    = sign(<'TA', IDc.44, r1.49>, x.84)
+        skC   = skC.53
+        z     = cert_id(certC.45)
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    25. IDc   = IDc.44
+        certC = certC.45
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sign(<'TA', IDc.44, r1.49>, x.84)
+        skC   = skC.53
+        z     = cert_id(certC.45)
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.51,
+                       <'CA', cert(pk(x.84), x.85, z.62), certC.45, r2.50, 
+                        encaps(z.61, pk(skC.53))>,
+                       pk(x.84))
+        z.5   = z.61
+        z.6   = z.62
+    
+    26. IDc   = IDc.44
+        certC = certC.45
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', cert(pk(x.84), x.85, z.62), certC.45, r2.50, 
+                      encaps(z.61, pk(skC.53))>,
+                     x.84)
+        sT    = sign(<'TA', IDc.44, r1.49>, x.84)
+        skC   = skC.53
+        z     = cert_id(certC.45)
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.61
+        z.6   = z.62
+    
+    27. IDc   = IDc.44
+        certC = cert(x.82, x.83, z.55)
+        certT = cert(x.85, sign(<x.85, z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(x.83, <x.82, z.55, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, x.85)
+        z.4   = verify(sC.51,
+                       <'CA', cert(x.85, sign(<x.85, z.62, 'terminal'>, ca_sk), z.62), 
+                        cert(x.82, x.83, z.55), r2.50, cip.47>,
+                       x.85)
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    28. IDc   = IDc.44
+        certC = cert(x.82, x.83, z.55)
+        certT = cert(x.85, sign(<x.85, z.62, 'terminal'>, ca_sk), z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(x.83, <x.82, z.55, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, x.85)
+        z.4   = verify(sC.51,
+                       <'CA', cert(x.85, sign(<x.85, z.62, 'terminal'>, ca_sk), z.62), 
+                        cert(x.82, x.83, z.55), r2.50, encaps(z.61, pk(skC.53))>,
+                       x.85)
+        z.5   = z.61
+        z.6   = z.62
+    
+    29. IDc   = IDc.44
+        certC = cert(x.82, x.83, z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', 
+                      cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.82, x.83, z.55), r2.50, cip.47>,
+                     x.85)
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(x.83, <x.82, z.55, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, pk(x.85))
+        z.4   = true
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    30. IDc   = IDc.44
+        certC = cert(x.82, x.83, z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', 
+                      cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.82, x.83, z.55), r2.50, encaps(z.61, pk(skC.53))>,
+                     x.85)
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(x.83, <x.82, z.55, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, pk(x.85))
+        z.4   = true
+        z.5   = z.61
+        z.6   = z.62
+    
+    31. IDc   = IDc.44
+        certC = cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(x.84, x.85, z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = verify(x.85, <x.84, z.62, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, x.84)
+        z.4   = verify(sC.51,
+                       <'CA', cert(x.84, x.85, z.62), 
+                        cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55), r2.50, cip.47>,
+                       x.84)
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    32. IDc   = IDc.44
+        certC = cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(x.84, x.85, z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = verify(x.85, <x.84, z.62, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, x.84)
+        z.4   = verify(sC.51,
+                       <'CA', cert(x.84, x.85, z.62), 
+                        cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55), r2.50, 
+                        encaps(z.61, pk(skC.53))>,
+                       x.84)
+        z.5   = z.61
+        z.6   = z.62
+    
+    33. IDc   = IDc.44
+        certC = cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', cert(pk(x.84), x.85, z.62), 
+                      cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55), r2.50, cip.47>,
+                     x.84)
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, pk(x.84))
+        z.4   = true
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    34. IDc   = IDc.44
+        certC = cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', cert(pk(x.84), x.85, z.62), 
+                      cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55), r2.50, 
+                      encaps(z.61, pk(skC.53))>,
+                     x.84)
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, pk(x.84))
+        z.4   = true
+        z.5   = z.61
+        z.6   = z.62
+    
+    35. IDc   = IDc.44
+        certC = cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sign(<'TA', IDc.44, r1.49>, x.85)
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.51,
+                       <'CA', cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                        cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55), r2.50, cip.47>,
+                       pk(x.85))
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    36. IDc   = IDc.44
+        certC = cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', 
+                      cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55), r2.50, cip.47>,
+                     x.85)
+        sT    = sign(<'TA', IDc.44, r1.49>, x.85)
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    37. IDc   = IDc.44
+        certC = cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sign(<'TA', IDc.44, r1.49>, x.85)
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.51,
+                       <'CA', cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                        cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55), r2.50, 
+                        encaps(z.61, pk(skC.53))>,
+                       pk(x.85))
+        z.5   = z.61
+        z.6   = z.62
+    
+    38. IDc   = IDc.44
+        certC = cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', 
+                      cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55), r2.50, 
+                      encaps(z.61, pk(skC.53))>,
+                     x.85)
+        sT    = sign(<'TA', IDc.44, r1.49>, x.85)
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.61
+        z.6   = z.62
+    
+    39. IDc   = IDc.45
+        certC = cert(x.83, x.84, z.56)
+        certT = cert(x.86, x.87, z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <x.86, z.63, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.56, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.45, r1.50>, x.86)
+        z.4   = verify(sC.52,
+                       <'CA', cert(x.86, x.87, z.63), cert(x.83, x.84, z.56), r2.51, cip.48>,
+                       x.86)
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    40. IDc   = IDc.45
+        certC = cert(x.83, x.84, z.56)
+        certT = cert(x.86, x.87, z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <x.86, z.63, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.56, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.45, r1.50>, x.86)
+        z.4   = verify(sC.52,
+                       <'CA', cert(x.86, x.87, z.63), cert(x.83, x.84, z.56), r2.51, 
+                        encaps(z.62, pk(skC.54))>,
+                       x.86)
+        z.5   = z.62
+        z.6   = z.63
+    
+    41. IDc   = IDc.45
+        certC = cert(x.83, x.84, z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', cert(pk(x.86), x.87, z.63), cert(x.83, x.84, z.56), 
+                      r2.51, cip.48>,
+                     x.86)
+        sT    = sT.53
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.56, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.45, r1.50>, pk(x.86))
+        z.4   = true
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    42. IDc   = IDc.45
+        certC = cert(x.83, x.84, z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', cert(pk(x.86), x.87, z.63), cert(x.83, x.84, z.56), 
+                      r2.51, encaps(z.62, pk(skC.54))>,
+                     x.86)
+        sT    = sT.53
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.56, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.45, r1.50>, pk(x.86))
+        z.4   = true
+        z.5   = z.62
+        z.6   = z.63
+    
+    43. IDc   = IDc.45
+        certC = cert(x.84, x.85, z.56)
+        certT = cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sign(<'TA', IDc.45, r1.50>, x.87)
+        skC   = skC.54
+        z     = z.56
+        z.1   = true
+        z.2   = verify(x.85, <x.84, z.56, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.52,
+                       <'CA', cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63), 
+                        cert(x.84, x.85, z.56), r2.51, cip.48>,
+                       pk(x.87))
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    44. IDc   = IDc.45
+        certC = cert(x.84, x.85, z.56)
+        certT = cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', 
+                      cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63), 
+                      cert(x.84, x.85, z.56), r2.51, cip.48>,
+                     x.87)
+        sT    = sign(<'TA', IDc.45, r1.50>, x.87)
+        skC   = skC.54
+        z     = z.56
+        z.1   = true
+        z.2   = verify(x.85, <x.84, z.56, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    45. IDc   = IDc.45
+        certC = cert(x.84, x.85, z.56)
+        certT = cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sign(<'TA', IDc.45, r1.50>, x.87)
+        skC   = skC.54
+        z     = z.56
+        z.1   = true
+        z.2   = verify(x.85, <x.84, z.56, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.52,
+                       <'CA', cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63), 
+                        cert(x.84, x.85, z.56), r2.51, encaps(z.62, pk(skC.54))>,
+                       pk(x.87))
+        z.5   = z.62
+        z.6   = z.63
+    
+    46. IDc   = IDc.45
+        certC = cert(x.84, x.85, z.56)
+        certT = cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', 
+                      cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63), 
+                      cert(x.84, x.85, z.56), r2.51, encaps(z.62, pk(skC.54))>,
+                     x.87)
+        sT    = sign(<'TA', IDc.45, r1.50>, x.87)
+        skC   = skC.54
+        z     = z.56
+        z.1   = true
+        z.2   = verify(x.85, <x.84, z.56, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.62
+        z.6   = z.63
+    
+    47. IDc   = IDc.45
+        certC = cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sign(<'TA', IDc.45, r1.50>, x.86)
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.52,
+                       <'CA', cert(pk(x.86), x.87, z.63), 
+                        cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56), r2.51, cip.48>,
+                       pk(x.86))
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    48. IDc   = IDc.45
+        certC = cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', cert(pk(x.86), x.87, z.63), 
+                      cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56), r2.51, cip.48>,
+                     x.86)
+        sT    = sign(<'TA', IDc.45, r1.50>, x.86)
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    49. IDc   = IDc.45
+        certC = cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sign(<'TA', IDc.45, r1.50>, x.86)
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.52,
+                       <'CA', cert(pk(x.86), x.87, z.63), 
+                        cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56), r2.51, 
+                        encaps(z.62, pk(skC.54))>,
+                       pk(x.86))
+        z.5   = z.62
+        z.6   = z.63
+    
+    50. IDc   = IDc.45
+        certC = cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', cert(pk(x.86), x.87, z.63), 
+                      cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56), r2.51, 
+                      encaps(z.62, pk(skC.54))>,
+                     x.86)
+        sT    = sign(<'TA', IDc.45, r1.50>, x.86)
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.62
+        z.6   = z.63
+    
+    51. IDc   = IDc.46
+        certC = cert(x.85, x.86, z.57)
+        certT = cert(pk(x.88), x.89, z.64)
+        cip   = cip.49
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sC.53
+        sT    = sign(<'TA', IDc.46, r1.51>, x.88)
+        skC   = skC.55
+        z     = z.57
+        z.1   = verify(x.89, <pk(x.88), z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.86, <x.85, z.57, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.53,
+                       <'CA', cert(pk(x.88), x.89, z.64), cert(x.85, x.86, z.57), r2.52, cip.49
+                       >,
+                       pk(x.88))
+        z.5   = decaps(cip.49, skC.55)
+        z.6   = z.64
+    
+    52. IDc   = IDc.46
+        certC = cert(x.85, x.86, z.57)
+        certT = cert(pk(x.88), x.89, z.64)
+        cip   = cip.49
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sign(<'CA', cert(pk(x.88), x.89, z.64), cert(x.85, x.86, z.57), 
+                      r2.52, cip.49>,
+                     x.88)
+        sT    = sign(<'TA', IDc.46, r1.51>, x.88)
+        skC   = skC.55
+        z     = z.57
+        z.1   = verify(x.89, <pk(x.88), z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.86, <x.85, z.57, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.49, skC.55)
+        z.6   = z.64
+    
+    53. IDc   = IDc.46
+        certC = cert(x.85, x.86, z.57)
+        certT = cert(pk(x.88), x.89, z.64)
+        cip   = encaps(z.63, pk(skC.55))
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sC.53
+        sT    = sign(<'TA', IDc.46, r1.51>, x.88)
+        skC   = skC.55
+        z     = z.57
+        z.1   = verify(x.89, <pk(x.88), z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.86, <x.85, z.57, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.53,
+                       <'CA', cert(pk(x.88), x.89, z.64), cert(x.85, x.86, z.57), r2.52, 
+                        encaps(z.63, pk(skC.55))>,
+                       pk(x.88))
+        z.5   = z.63
+        z.6   = z.64
+    
+    54. IDc   = IDc.46
+        certC = cert(x.85, x.86, z.57)
+        certT = cert(pk(x.88), x.89, z.64)
+        cip   = encaps(z.63, pk(skC.55))
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sign(<'CA', cert(pk(x.88), x.89, z.64), cert(x.85, x.86, z.57), 
+                      r2.52, encaps(z.63, pk(skC.55))>,
+                     x.88)
+        sT    = sign(<'TA', IDc.46, r1.51>, x.88)
+        skC   = skC.55
+        z     = z.57
+        z.1   = verify(x.89, <pk(x.88), z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.86, <x.85, z.57, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.63
+        z.6   = z.64
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, IDc, r1, sT, certC, r2, cip, sC, kCNF> ), In( kKDF ),
+   !Pk( T, pkT, 'terminal' )
+   ]
+  --[
+  Eq( T, cert_id(certT) ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(sT, <'TA', IDc, r1>, pkT), true ),
+  Eq( verify(sC, <'CA', certT, certC, r2, cip>, pkT), true ),
+  Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip>, kKDF) ),
+  ValidTrans( T, 'terminal', cert_id(certC) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, IDc, r1, sT, certC, r2, cip, sC, kCNF> ), In( kKDF ),
+     !Pk( T, pkT, 'terminal' )
+     ]
+    --[
+    Eq( T, z ), Eq( z.1, true ), Eq( z.2, true ), Eq( z.3, true ),
+    Eq( z.4, true ), Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip>, kKDF) ),
+    ValidTrans( T, 'terminal', z.5 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. IDc   = IDc.33
+        certC = certC.35
+        certT = certT.36
+        cip   = cip.37
+        pkT   = pkT.40
+        r1    = r1.41
+        r2    = r2.42
+        sC    = sC.43
+        sT    = sT.44
+        z     = cert_id(certT.36)
+        z.1   = verify(cert_sig(certT.36),
+                       <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.35),
+                       <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.44, <'TA', IDc.33, r1.41>, pkT.40)
+        z.4   = verify(sC.43, <'CA', certT.36, certC.35, r2.42, cip.37>, pkT.40)
+        z.5   = cert_id(certC.35)
+    
+     2. IDc   = IDc.42
+        certC = certC.44
+        certT = cert(x.82, sign(<x.82, z.55, 'terminal'>, ca_sk), z.55)
+        cip   = cip.46
+        pkT   = pkT.49
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.42, r1.50>, pkT.49)
+        z.4   = verify(sC.52,
+                       <'CA', cert(x.82, sign(<x.82, z.55, 'terminal'>, ca_sk), z.55), 
+                        certC.44, r2.51, cip.46>,
+                       pkT.49)
+        z.5   = cert_id(certC.44)
+    
+     3. IDc   = IDc.42
+        certC = cert(x.82, sign(<x.82, z.61, 'chip'>, ca_sk), z.61)
+        certT = certT.45
+        cip   = cip.46
+        pkT   = pkT.49
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        z     = cert_id(certT.45)
+        z.1   = verify(cert_sig(certT.45),
+                       <cert_pk(certT.45), cert_id(certT.45), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.53, <'TA', IDc.42, r1.50>, pkT.49)
+        z.4   = verify(sC.52,
+                       <'CA', certT.45, cert(x.82, sign(<x.82, z.61, 'chip'>, ca_sk), z.61), 
+                        r2.51, cip.46>,
+                       pkT.49)
+        z.5   = z.61
+    
+     4. IDc   = IDc.43
+        certC = certC.45
+        certT = cert(x.83, x.84, z.56)
+        cip   = cip.47
+        pkT   = pkT.50
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sC.53
+        sT    = sT.54
+        z     = z.56
+        z.1   = verify(x.84, <x.83, z.56, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.54, <'TA', IDc.43, r1.51>, pkT.50)
+        z.4   = verify(sC.53,
+                       <'CA', cert(x.83, x.84, z.56), certC.45, r2.52, cip.47>, pkT.50)
+        z.5   = cert_id(certC.45)
+    
+     5. IDc   = IDc.43
+        certC = cert(x.83, x.84, z.62)
+        certT = certT.46
+        cip   = cip.47
+        pkT   = pkT.50
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sC.53
+        sT    = sT.54
+        z     = cert_id(certT.46)
+        z.1   = verify(cert_sig(certT.46),
+                       <cert_pk(certT.46), cert_id(certT.46), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.62, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.54, <'TA', IDc.43, r1.51>, pkT.50)
+        z.4   = verify(sC.53,
+                       <'CA', certT.46, cert(x.83, x.84, z.62), r2.52, cip.47>, pkT.50)
+        z.5   = z.62
+    
+     6. IDc   = IDc.44
+        certC = cert(x.84, sign(<x.84, z.63, 'chip'>, ca_sk), z.63)
+        certT = cert(x.86, sign(<x.86, z.57, 'terminal'>, ca_sk), z.57)
+        cip   = cip.48
+        pkT   = pkT.51
+        r1    = r1.52
+        r2    = r2.53
+        sC    = sC.54
+        sT    = sT.55
+        z     = z.57
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.55, <'TA', IDc.44, r1.52>, pkT.51)
+        z.4   = verify(sC.54,
+                       <'CA', cert(x.86, sign(<x.86, z.57, 'terminal'>, ca_sk), z.57), 
+                        cert(x.84, sign(<x.84, z.63, 'chip'>, ca_sk), z.63), r2.53, cip.48>,
+                       pkT.51)
+        z.5   = z.63
+    
+     7. IDc   = IDc.45
+        certC = cert(x.85, x.86, z.64)
+        certT = cert(x.88, sign(<x.88, z.58, 'terminal'>, ca_sk), z.58)
+        cip   = cip.49
+        pkT   = pkT.52
+        r1    = r1.53
+        r2    = r2.54
+        sC    = sC.55
+        sT    = sT.56
+        z     = z.58
+        z.1   = true
+        z.2   = verify(x.86, <x.85, z.64, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.56, <'TA', IDc.45, r1.53>, pkT.52)
+        z.4   = verify(sC.55,
+                       <'CA', cert(x.88, sign(<x.88, z.58, 'terminal'>, ca_sk), z.58), 
+                        cert(x.85, x.86, z.64), r2.54, cip.49>,
+                       pkT.52)
+        z.5   = z.64
+    
+     8. IDc   = IDc.45
+        certC = cert(x.85, sign(<x.85, z.64, 'chip'>, ca_sk), z.64)
+        certT = cert(x.87, x.88, z.58)
+        cip   = cip.49
+        pkT   = pkT.52
+        r1    = r1.53
+        r2    = r2.54
+        sC    = sC.55
+        sT    = sT.56
+        z     = z.58
+        z.1   = verify(x.88, <x.87, z.58, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.56, <'TA', IDc.45, r1.53>, pkT.52)
+        z.4   = verify(sC.55,
+                       <'CA', cert(x.87, x.88, z.58), 
+                        cert(x.85, sign(<x.85, z.64, 'chip'>, ca_sk), z.64), r2.54, cip.49>,
+                       pkT.52)
+        z.5   = z.64
+    
+     9. IDc   = IDc.46
+        certC = cert(x.86, x.87, z.65)
+        certT = cert(x.89, x.90, z.59)
+        cip   = cip.50
+        pkT   = pkT.53
+        r1    = r1.54
+        r2    = r2.55
+        sC    = sC.56
+        sT    = sT.57
+        z     = z.59
+        z.1   = verify(x.90, <x.89, z.59, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.87, <x.86, z.65, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.57, <'TA', IDc.46, r1.54>, pkT.53)
+        z.4   = verify(sC.56,
+                       <'CA', cert(x.89, x.90, z.59), cert(x.86, x.87, z.65), r2.55, cip.50>,
+                       pkT.53)
+        z.5   = z.65
+    
+    10. IDc   = IDc.47
+        certC = certC.49
+        certT = certT.50
+        cip   = cip.51
+        pkT   = pk(x.92)
+        r1    = r1.55
+        r2    = r2.56
+        sC    = sign(<'CA', certT.50, certC.49, r2.56, cip.51>, x.92)
+        sT    = sT.58
+        z     = cert_id(certT.50)
+        z.1   = verify(cert_sig(certT.50),
+                       <cert_pk(certT.50), cert_id(certT.50), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.49),
+                       <cert_pk(certC.49), cert_id(certC.49), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.58, <'TA', IDc.47, r1.55>, pk(x.92))
+        z.4   = true
+        z.5   = cert_id(certC.49)
+    
+    11. IDc   = IDc.48
+        certC = certC.50
+        certT = cert(x.89, sign(<x.89, z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.52
+        pkT   = pk(x.94)
+        r1    = r1.56
+        r2    = r2.57
+        sC    = sign(<'CA', 
+                      cert(x.89, sign(<x.89, z.61, 'terminal'>, ca_sk), z.61), certC.50, 
+                      r2.57, cip.52>,
+                     x.94)
+        sT    = sT.59
+        z     = z.61
+        z.1   = true
+        z.2   = verify(cert_sig(certC.50),
+                       <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.59, <'TA', IDc.48, r1.56>, pk(x.94))
+        z.4   = true
+        z.5   = cert_id(certC.50)
+    
+    12. IDc   = IDc.48
+        certC = cert(x.88, sign(<x.88, z.67, 'chip'>, ca_sk), z.67)
+        certT = certT.51
+        cip   = cip.52
+        pkT   = pk(x.94)
+        r1    = r1.56
+        r2    = r2.57
+        sC    = sign(<'CA', certT.51, 
+                      cert(x.88, sign(<x.88, z.67, 'chip'>, ca_sk), z.67), r2.57, cip.52>,
+                     x.94)
+        sT    = sT.59
+        z     = cert_id(certT.51)
+        z.1   = verify(cert_sig(certT.51),
+                       <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.59, <'TA', IDc.48, r1.56>, pk(x.94))
+        z.4   = true
+        z.5   = z.67
+    
+    13. IDc   = IDc.49
+        certC = certC.51
+        certT = certT.52
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sC.59
+        sT    = sign(<'TA', IDc.49, r1.57>, x.96)
+        z     = cert_id(certT.52)
+        z.1   = verify(cert_sig(certT.52),
+                       <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.51),
+                       <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.59, <'CA', certT.52, certC.51, r2.58, cip.53>,
+                       pk(x.96))
+        z.5   = cert_id(certC.51)
+    
+    14. IDc   = IDc.49
+        certC = certC.51
+        certT = certT.52
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sign(<'CA', certT.52, certC.51, r2.58, cip.53>, x.96)
+        sT    = sign(<'TA', IDc.49, r1.57>, x.96)
+        z     = cert_id(certT.52)
+        z.1   = verify(cert_sig(certT.52),
+                       <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.51),
+                       <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.51)
+    
+    15. IDc   = IDc.49
+        certC = certC.51
+        certT = cert(x.90, x.91, z.62)
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sign(<'CA', cert(x.90, x.91, z.62), certC.51, r2.58, cip.53>,
+                     x.96)
+        sT    = sT.60
+        z     = z.62
+        z.1   = verify(x.91, <x.90, z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.51),
+                       <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.60, <'TA', IDc.49, r1.57>, pk(x.96))
+        z.4   = true
+        z.5   = cert_id(certC.51)
+    
+    16. IDc   = IDc.49
+        certC = cert(x.89, x.90, z.68)
+        certT = certT.52
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sign(<'CA', certT.52, cert(x.89, x.90, z.68), r2.58, cip.53>,
+                     x.96)
+        sT    = sT.60
+        z     = cert_id(certT.52)
+        z.1   = verify(cert_sig(certT.52),
+                       <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.90, <x.89, z.68, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.60, <'TA', IDc.49, r1.57>, pk(x.96))
+        z.4   = true
+        z.5   = z.68
+    
+    17. IDc   = IDc.49
+        certC = cert(x.89, sign(<x.89, z.68, 'chip'>, ca_sk), z.68)
+        certT = cert(x.91, sign(<x.91, z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sign(<'CA', 
+                      cert(x.91, sign(<x.91, z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.89, sign(<x.89, z.68, 'chip'>, ca_sk), z.68), r2.58, cip.53>,
+                     x.96)
+        sT    = sT.60
+        z     = z.62
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.60, <'TA', IDc.49, r1.57>, pk(x.96))
+        z.4   = true
+        z.5   = z.68
+    
+    18. IDc   = IDc.50
+        certC = certC.52
+        certT = cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sC.60
+        sT    = sign(<'TA', IDc.50, r1.58>, x.98)
+        z     = z.63
+        z.1   = true
+        z.2   = verify(cert_sig(certC.52),
+                       <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.60,
+                       <'CA', cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63), 
+                        certC.52, r2.59, cip.54>,
+                       pk(x.98))
+        z.5   = cert_id(certC.52)
+    
+    19. IDc   = IDc.50
+        certC = certC.52
+        certT = cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sign(<'CA', 
+                      cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63), certC.52, 
+                      r2.59, cip.54>,
+                     x.98)
+        sT    = sign(<'TA', IDc.50, r1.58>, x.98)
+        z     = z.63
+        z.1   = true
+        z.2   = verify(cert_sig(certC.52),
+                       <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.52)
+    
+    20. IDc   = IDc.50
+        certC = cert(x.90, x.91, z.69)
+        certT = cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sign(<'CA', 
+                      cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63), 
+                      cert(x.90, x.91, z.69), r2.59, cip.54>,
+                     x.98)
+        sT    = sT.61
+        z     = z.63
+        z.1   = true
+        z.2   = verify(x.91, <x.90, z.69, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.61, <'TA', IDc.50, r1.58>, pk(x.98))
+        z.4   = true
+        z.5   = z.69
+    
+    21. IDc   = IDc.50
+        certC = cert(x.90, sign(<x.90, z.69, 'chip'>, ca_sk), z.69)
+        certT = cert(x.92, x.93, z.63)
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sign(<'CA', cert(x.92, x.93, z.63), 
+                      cert(x.90, sign(<x.90, z.69, 'chip'>, ca_sk), z.69), r2.59, cip.54>,
+                     x.98)
+        sT    = sT.61
+        z     = z.63
+        z.1   = verify(x.93, <x.92, z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.61, <'TA', IDc.50, r1.58>, pk(x.98))
+        z.4   = true
+        z.5   = z.69
+    
+    22. IDc   = IDc.50
+        certC = cert(x.92, sign(<x.92, z.69, 'chip'>, ca_sk), z.69)
+        certT = certT.53
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sC.60
+        sT    = sign(<'TA', IDc.50, r1.58>, x.98)
+        z     = cert_id(certT.53)
+        z.1   = verify(cert_sig(certT.53),
+                       <cert_pk(certT.53), cert_id(certT.53), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.60,
+                       <'CA', certT.53, cert(x.92, sign(<x.92, z.69, 'chip'>, ca_sk), z.69), 
+                        r2.59, cip.54>,
+                       pk(x.98))
+        z.5   = z.69
+    
+    23. IDc   = IDc.50
+        certC = cert(x.92, sign(<x.92, z.69, 'chip'>, ca_sk), z.69)
+        certT = certT.53
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sign(<'CA', certT.53, 
+                      cert(x.92, sign(<x.92, z.69, 'chip'>, ca_sk), z.69), r2.59, cip.54>,
+                     x.98)
+        sT    = sign(<'TA', IDc.50, r1.58>, x.98)
+        z     = cert_id(certT.53)
+        z.1   = verify(cert_sig(certT.53),
+                       <cert_pk(certT.53), cert_id(certT.53), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.69
+    
+    24. IDc   = IDc.51
+        certC = certC.53
+        certT = cert(x.94, x.95, z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = z.64
+        z.1   = verify(x.95, <x.94, z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.53),
+                       <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.61,
+                       <'CA', cert(x.94, x.95, z.64), certC.53, r2.60, cip.55>, pk(x.100))
+        z.5   = cert_id(certC.53)
+    
+    25. IDc   = IDc.51
+        certC = certC.53
+        certT = cert(x.94, x.95, z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sign(<'CA', cert(x.94, x.95, z.64), certC.53, r2.60, cip.55>,
+                     x.100)
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = z.64
+        z.1   = verify(x.95, <x.94, z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.53),
+                       <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.53)
+    
+    26. IDc   = IDc.51
+        certC = cert(x.91, x.92, z.70)
+        certT = cert(x.94, x.95, z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sign(<'CA', cert(x.94, x.95, z.64), cert(x.91, x.92, z.70), 
+                      r2.60, cip.55>,
+                     x.100)
+        sT    = sT.62
+        z     = z.64
+        z.1   = verify(x.95, <x.94, z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.92, <x.91, z.70, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.62, <'TA', IDc.51, r1.59>, pk(x.100))
+        z.4   = true
+        z.5   = z.70
+    
+    27. IDc   = IDc.51
+        certC = cert(x.93, x.94, z.70)
+        certT = certT.54
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = cert_id(certT.54)
+        z.1   = verify(cert_sig(certT.54),
+                       <cert_pk(certT.54), cert_id(certT.54), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.94, <x.93, z.70, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.61,
+                       <'CA', certT.54, cert(x.93, x.94, z.70), r2.60, cip.55>, pk(x.100))
+        z.5   = z.70
+    
+    28. IDc   = IDc.51
+        certC = cert(x.93, x.94, z.70)
+        certT = certT.54
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sign(<'CA', certT.54, cert(x.93, x.94, z.70), r2.60, cip.55>,
+                     x.100)
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = cert_id(certT.54)
+        z.1   = verify(cert_sig(certT.54),
+                       <cert_pk(certT.54), cert_id(certT.54), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.94, <x.93, z.70, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.70
+    
+    29. IDc   = IDc.51
+        certC = cert(x.93, sign(<x.93, z.70, 'chip'>, ca_sk), z.70)
+        certT = cert(x.95, sign(<x.95, z.64, 'terminal'>, ca_sk), z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = z.64
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.61,
+                       <'CA', cert(x.95, sign(<x.95, z.64, 'terminal'>, ca_sk), z.64), 
+                        cert(x.93, sign(<x.93, z.70, 'chip'>, ca_sk), z.70), r2.60, cip.55>,
+                       pk(x.100))
+        z.5   = z.70
+    
+    30. IDc   = IDc.51
+        certC = cert(x.93, sign(<x.93, z.70, 'chip'>, ca_sk), z.70)
+        certT = cert(x.95, sign(<x.95, z.64, 'terminal'>, ca_sk), z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sign(<'CA', 
+                      cert(x.95, sign(<x.95, z.64, 'terminal'>, ca_sk), z.64), 
+                      cert(x.93, sign(<x.93, z.70, 'chip'>, ca_sk), z.70), r2.60, cip.55>,
+                     x.100)
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = z.64
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.70
+    
+    31. IDc   = IDc.52
+        certC = cert(x.94, x.95, z.71)
+        certT = cert(x.97, sign(<x.97, z.65, 'terminal'>, ca_sk), z.65)
+        cip   = cip.56
+        pkT   = pk(x.102)
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sC.62
+        sT    = sign(<'TA', IDc.52, r1.60>, x.102)
+        z     = z.65
+        z.1   = true
+        z.2   = verify(x.95, <x.94, z.71, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.62,
+                       <'CA', cert(x.97, sign(<x.97, z.65, 'terminal'>, ca_sk), z.65), 
+                        cert(x.94, x.95, z.71), r2.61, cip.56>,
+                       pk(x.102))
+        z.5   = z.71
+    
+    32. IDc   = IDc.52
+        certC = cert(x.94, x.95, z.71)
+        certT = cert(x.97, sign(<x.97, z.65, 'terminal'>, ca_sk), z.65)
+        cip   = cip.56
+        pkT   = pk(x.102)
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sign(<'CA', 
+                      cert(x.97, sign(<x.97, z.65, 'terminal'>, ca_sk), z.65), 
+                      cert(x.94, x.95, z.71), r2.61, cip.56>,
+                     x.102)
+        sT    = sign(<'TA', IDc.52, r1.60>, x.102)
+        z     = z.65
+        z.1   = true
+        z.2   = verify(x.95, <x.94, z.71, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.71
+    
+    33. IDc   = IDc.52
+        certC = cert(x.94, sign(<x.94, z.71, 'chip'>, ca_sk), z.71)
+        certT = cert(x.96, x.97, z.65)
+        cip   = cip.56
+        pkT   = pk(x.102)
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sC.62
+        sT    = sign(<'TA', IDc.52, r1.60>, x.102)
+        z     = z.65
+        z.1   = verify(x.97, <x.96, z.65, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.62,
+                       <'CA', cert(x.96, x.97, z.65), 
+                        cert(x.94, sign(<x.94, z.71, 'chip'>, ca_sk), z.71), r2.61, cip.56>,
+                       pk(x.102))
+        z.5   = z.71
+    
+    34. IDc   = IDc.52
+        certC = cert(x.94, sign(<x.94, z.71, 'chip'>, ca_sk), z.71)
+        certT = cert(x.96, x.97, z.65)
+        cip   = cip.56
+        pkT   = pk(x.102)
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sign(<'CA', cert(x.96, x.97, z.65), 
+                      cert(x.94, sign(<x.94, z.71, 'chip'>, ca_sk), z.71), r2.61, cip.56>,
+                     x.102)
+        sT    = sign(<'TA', IDc.52, r1.60>, x.102)
+        z     = z.65
+        z.1   = verify(x.97, <x.96, z.65, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.71
+    
+    35. IDc   = IDc.53
+        certC = cert(x.95, x.96, z.72)
+        certT = cert(x.98, x.99, z.66)
+        cip   = cip.57
+        pkT   = pk(x.104)
+        r1    = r1.61
+        r2    = r2.62
+        sC    = sC.63
+        sT    = sign(<'TA', IDc.53, r1.61>, x.104)
+        z     = z.66
+        z.1   = verify(x.99, <x.98, z.66, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.96, <x.95, z.72, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.63,
+                       <'CA', cert(x.98, x.99, z.66), cert(x.95, x.96, z.72), r2.62, cip.57>,
+                       pk(x.104))
+        z.5   = z.72
+    
+    36. IDc   = IDc.53
+        certC = cert(x.95, x.96, z.72)
+        certT = cert(x.98, x.99, z.66)
+        cip   = cip.57
+        pkT   = pk(x.104)
+        r1    = r1.61
+        r2    = r2.62
+        sC    = sign(<'CA', cert(x.98, x.99, z.66), cert(x.95, x.96, z.72), 
+                      r2.62, cip.57>,
+                     x.104)
+        sT    = sign(<'TA', IDc.53, r1.61>, x.104)
+        z     = z.66
+        z.1   = verify(x.99, <x.98, z.66, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.96, <x.95, z.72, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.72
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.3 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk))>,
+                                 ~ltk.1)
+                       ) @ #vk.5 )
+                  case TA_RESPONSE_T
+                  solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.34 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~r2 ) @ #vk.30 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~id_c ) @ #vk.33 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~r1 ) @ #vk.34 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                                 ) @ #vk.20 )
+                            case CA_Sign_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk))>,
+                                            ~k)
+                                   ) @ #vk.24 )
+                              case TA_COMPLETE_C
+                              solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.33 )
+                                case CA_Sign_ltk
+                                solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.21 )
+                                  case TA_RESPONSE_T
+                                  SOLVED // trace found
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case TA_COMPLETE_C
+                solve( TAChallengeC( <$C, iid.1>, cert(pk(x), x.1, $T), id_c.1, r1.1,
+                                     r2.1
+                       ) ▶₁ #i2 )
+                  case TA_CHALLENGE_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( kdf(<'KEY', 
+                                             cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), 
+                                             ~r2.1, cip>,
+                                            z),
+                                        <cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1, 
+                                         cip>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( CAInitT( <$T, iid.3>, id_c.3,
+                                        cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1,
+                                        <z, cip>
+                               ) ▶₁ #j2 )
+                          case TA_RESPONSE_T
+                          solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.3 )
+                              case TA_RESPONSE_T
+                              solve( !KU( sign(<'CA', 
+                                                cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                     $T), 
+                                                cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                                encaps(~k, pk(~ltk))>,
+                                               ~ltk.1)
+                                     ) @ #vk.5 )
+                                case TA_RESPONSE_T
+                                solve( !KU( sign(<'TA', ~id_c.1, ~r1.1>, ~ltk.1) ) @ #vk.40 )
+                                  case TA_RESPONSE_T
+                                  solve( !KU( sign(<'CA', 
+                                                    cert(pk(~ltk.1),
+                                                         sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                                    cert(pk(~skC), sign(<pk(~skC), $C, 'chip'>, ca_sk), $C), 
+                                                    ~r2.1, encaps(~k.1, pk(~skC))>,
+                                                   ~ltk.1)
+                                         ) @ #vk.43 )
+                                    case TA_RESPONSE_T
+                                    solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.54 )
+                                      case CA_Sign_ltk
+                                      solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.60 )
+                                        case CA_Sign_ltk
+                                        solve( !KU( ~r2 ) @ #vk.47 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( ~r2.1 ) @ #vk.55 )
+                                            case TA_CHALLENGE_C
+                                            solve( !KU( ~id_c ) @ #vk.56 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( ~r1 ) @ #vk.57 )
+                                                case TA_CHALLENGE_C
+                                                solve( !KU( ~id_c.1 ) @ #vk.59 )
+                                                  case TA_CHALLENGE_C
+                                                  solve( !KU( ~r1.1 ) @ #vk.60 )
+                                                    case TA_CHALLENGE_C
+                                                    solve( !KU( cert(pk(~skT),
+                                                                     sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                                     $T)
+                                                           ) @ #vk.39 )
+                                                      case CA_Sign_ltk
+                                                      solve( !KU( kdf(<'CNF', 
+                                                                       cert(pk(~skT),
+                                                                            sign(<pk(~skT), $T, 'terminal'>,
+                                                                                 ca_sk),
+                                                                            $T), 
+                                                                       cert(pk(~ltk),
+                                                                            sign(<pk(~ltk), $C, 'chip'>,
+                                                                                 ca_sk),
+                                                                            $C), 
+                                                                       ~r2, encaps(~k, pk(~ltk))>,
+                                                                      ~k)
+                                                             ) @ #vk.42 )
+                                                        case TA_COMPLETE_C
+                                                        solve( !KU( cert(pk(~ltk),
+                                                                         sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                                         $C)
+                                                               ) @ #vk.52 )
+                                                          case CA_Sign_ltk
+                                                          solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.37 )
+                                                            case TA_RESPONSE_T
+                                                            solve( !KU( cert(pk(~ltk.1),
+                                                                             sign(<pk(~ltk.1), $T, 'terminal'
+                                                                                  >,
+                                                                                  ca_sk),
+                                                                             $T)
+                                                                   ) @ #vk.55 )
+                                                              case CA_Sign_ltk
+                                                              solve( !KU( kdf(<'CNF', 
+                                                                               cert(pk(~ltk.1),
+                                                                                    sign(<pk(~ltk.1), $T, 
+                                                                                          'terminal'>,
+                                                                                         ca_sk),
+                                                                                    $T), 
+                                                                               cert(pk(~skC),
+                                                                                    sign(<pk(~skC), $C, 'chip'
+                                                                                         >,
+                                                                                         ca_sk),
+                                                                                    $C), 
+                                                                               ~r2.1, encaps(~k.1, pk(~skC))>,
+                                                                              ~k.1)
+                                                                     ) @ #vk.56 )
+                                                                case TA_COMPLETE_C
+                                                                solve( !KU( cert(pk(~skC),
+                                                                                 sign(<pk(~skC), $C, 'chip'>,
+                                                                                      ca_sk),
+                                                                                 $C)
+                                                                       ) @ #vk.59 )
+                                                                  case CA_Sign_ltk
+                                                                  solve( !KU( encaps(~k.1, pk(~skC))
+                                                                         ) @ #vk.57 )
+                                                                    case TA_RESPONSE_T
+                                                                    SOLVED // trace found
+                                                                  qed
+                                                                qed
+                                                              qed
+                                                            qed
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                        ~k)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.18 )
+            case TA_RESPONSE_T
+            solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                   ) @ #vk.13 )
+              case CA_Sign_ltk
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case TA_CHALLENGE_C
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case c_cert
+              solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.25 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_sign
+                by solve( !KU( ca_sk ) @ #vk.29 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              by contradiction /* from formulas */
+            next
+              case split_case_2
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.18 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk))>,
+                                 ~ltk.1)
+                       ) @ #vk.21 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'CNF', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  ~k)
+                         ) @ #vk.4 )
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.40 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ltk ) @ #vk.42 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.40 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.29 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                        ~k)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.18 )
+            case TA_RESPONSE_T
+            solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                   ) @ #vk.13 )
+              case CA_Sign_ltk
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case TA_CHALLENGE_C
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case c_cert
+              solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.25 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_sign
+                by solve( !KU( ca_sk ) @ #vk.29 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                        ~k)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.18 )
+            case TA_RESPONSE_T
+            solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                   ) @ #vk.13 )
+              case CA_Sign_ltk
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case TA_CHALLENGE_C
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case c_cert
+              solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.25 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_sign
+                by solve( !KU( ca_sk ) @ #vk.29 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      by contradiction /* from formulas */
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                                ~k),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                                ~k),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_T
+    solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+      case TA_RESPONSE_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                               cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                              ~k),
+                          sid2, $T, 'terminal', B
+               ) @ #j )
+          case CA_FINISH_T
+          by contradiction /* from formulas */
+        qed
+      qed
+    qed
+  next
+    case TA_COMPLETE_C
+    solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2
+           ) ▶₁ #i )
+      case TA_CHALLENGE_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                z),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.3 )
+                  case TA_RESPONSE_T
+                  solve( !KU( sign(<'CA', 
+                                    cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                    encaps(~k, pk(~ltk))>,
+                                   ~ltk.1)
+                         ) @ #vk.5 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.14 )
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.40 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.42 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( ~ltk.1 ) @ #vk.40 )
+                      case Corrupt_ltk
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk))>,
+                                      ~k)
+                             ) @ #vk.19 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.43 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.45 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.29 )
+                    case Corrupt_ltk
+                    solve( !KU( sign(<'CA', 
+                                      cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                      cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                      encaps(~k, pk(~ltk))>,
+                                     ~ltk.1)
+                           ) @ #vk.6 )
+                      case TA_RESPONSE_T
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk))>,
+                                      ~k)
+                             ) @ #vk.15 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.38 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.40 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk))>,
+                                      ~k)
+                             ) @ #vk.17 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.40 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.42 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.4 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk))>,
+                                 ~ltk.1)
+                       ) @ #vk.6 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'KEY', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  ~k)
+                         ) @ #vk.3 )
+                    case Reveal_session
+                    by contradiction /* from formulas */
+                  next
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.41 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ltk ) @ #vk.43 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.41 )
+                    case Corrupt_ltk
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.6 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.44 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.46 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.30 )
+                  case Corrupt_ltk
+                  solve( !KU( sign(<'CA', 
+                                    cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                    encaps(~k, pk(~ltk))>,
+                                   ~ltk.1)
+                         ) @ #vk.7 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.39 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.41 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.41 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.43 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+       ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+      case CA_Sign_ltk
+      solve( splitEqs(0) )
+        case split_case_1
+        solve( !KU( sign(<'TA', ~id_c, ~r1>, x) ) @ #vk.3 )
+          case TA_RESPONSE_T
+          solve( !KU( sign(<'CA', 
+                            cert(pk(~skT), sign(<pk(~skT), T, 'terminal'>, ca_sk), T), 
+                            cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                           ~skT)
+                 ) @ #vk.5 )
+            case TA_RESPONSE_T
+            solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.19 )
+              case CA_Sign_ltk
+              solve( !KU( ~iid ) @ #vk.12 )
+                case TA_CHALLENGE_C
+                solve( !KU( ~id_c ) @ #vk.17 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~r1 ) @ #vk.19 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~r2 ) @ #vk.32 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                             ) @ #vk.19 )
+                        case CA_Sign_ltk
+                        solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                               ) @ #vk.32 )
+                          case CA_Sign_ltk
+                          solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.18 )
+                            case TA_RESPONSE_T
+                            SOLVED // trace found
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₁ #i )
+    case Generate_chip_key_pair
+    solve( splitEqs(0) )
+      case split_case_2
+      solve( !KU( sign(<'CA', 
+                        cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                        cert(x.1, sign(<x.1, $A, 'chip'>, ca_sk), $A), r2, encaps(z, pk(~ltk))>,
+                       x)
+             ) @ #vk.15 )
+        case c_sign
+        solve( !KU( cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T)
+               ) @ #vk.2 )
+          case CA_Sign_ltk
+          solve( !KU( ~ltk ) @ #vk.21 )
+            case Corrupt_ltk
+            solve( !KU( sign(<'TA', IDc, r1>, ~ltk) ) @ #vk.13 )
+              case c_sign
+              solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.17 )
+                case CA_Sign_ltk
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $A.1, 'chip'>, ca_sk), $A.1), r2, 
+                                 encaps(z, pk(~ltk.2))>,
+                                z)
+                       ) @ #vk.23 )
+                  case c_kdf
+                  solve( !KU( encaps(z, pk(~ltk.2)) ) @ #vk.24 )
+                    case c_encaps
+                    solve( !KU( pk(~ltk.2) ) @ #vk.29 )
+                      case CA_Sign_ltk
+                      SOLVED // trace found
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !Pk( T, pk(x.1), 'terminal' ) ▶₂ #i )
+    case Generate_terminal_key_pair
+    solve( !KU( sign(<'TA', IDc, r1>, ~ltk) ) @ #vk.7 )
+      case TA_RESPONSE_T
+      by contradiction /* from formulas */
+    next
+      case c_sign
+      solve( !KU( ~ltk ) @ #vk.20 )
+        case Corrupt_ltk
+        by contradiction /* from formulas */
+      qed
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.4 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk))>,
+                                 ~ltk.1)
+                       ) @ #vk.6 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'KEY', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  ~k)
+                         ) @ #vk.3 )
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.41 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ltk ) @ #vk.43 )
+                        case Corrupt_ltk
+                        solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.41 )
+                          case CA_Sign_ltk
+                          solve( !KU( ~r2 ) @ #vk.38 )
+                            case TA_CHALLENGE_C
+                            solve( !KU( ~id_c ) @ #vk.40 )
+                              case TA_CHALLENGE_C
+                              solve( !KU( ~r1 ) @ #vk.41 )
+                                case TA_CHALLENGE_C
+                                solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                                       ) @ #vk.27 )
+                                  case CA_Sign_ltk
+                                  solve( !KU( kdf(<'CNF', 
+                                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                        $T), 
+                                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                   ~r2, encaps(~k, pk(~ltk))>,
+                                                  ~k)
+                                         ) @ #vk.31 )
+                                    case TA_COMPLETE_C
+                                    solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                           ) @ #vk.40 )
+                                      case CA_Sign_ltk
+                                      solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.28 )
+                                        case TA_RESPONSE_T
+                                        SOLVED // trace found
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 754.39s
+  
+  session_exist (exists-trace): verified (19 steps)
+  two_session_exist (exists-trace): verified (36 steps)
+  weak_agreement_C (all-traces): verified (8 steps)
+  weak_agreement_T (all-traces): verified (19 steps)
+  agreement_C (all-traces): verified (19 steps)
+  agreement_T (all-traces): verified (19 steps)
+  aliveness (all-traces): verified (20 steps)
+  session_uniqueness (all-traces): verified (37 steps)
+  consistency (all-traces): verified (31 steps)
+  key_secrecy (all-traces): verified (33 steps)
+  chip_hiding (all-traces): falsified - found trace (16 steps)
+  nonRepudiation_terminal (exists-trace): verified (13 steps)
+  nonRepudiation_chip (exists-trace): falsified - no trace found (7 steps)
+  pfs (all-traces): falsified - found trace (22 steps)
+
+==============================================================================
diff --git a/results/45991792.err.ALL_FastSigPQEAC_TAMARIN b/results/45991792.err.ALL_FastSigPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..e8b69d9cbe3f08bce37f20bdff07736861fc19fc
--- /dev/null
+++ b/results/45991792.err.ALL_FastSigPQEAC_TAMARIN
@@ -0,0 +1,28 @@
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991792.out.ALL_FastSigPQEAC_TAMARIN b/results/45991792.out.ALL_FastSigPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..6571991f96ef0a51397af234fd23e51c413ad472
--- /dev/null
+++ b/results/45991792.out.ALL_FastSigPQEAC_TAMARIN
@@ -0,0 +1,3694 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory FastSigPQEAC begin
+
+// Function signature and definition of the equational theory E
+
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, decaps/2, encaps/2, fst/1, kdf/2, pair/2, pk/1, sign/2,
+           snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    decaps(encaps(k, pk(sk)), sk) = k,
+    fst(<x.1, x.2>) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [ !Pk( $A, pk(~ltk), 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [ Out( <certT, '1', 't'> ), Out( ~iid ), TAInitT( <$T, ~iid> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [
+   In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ), Fr( ~r2 ),
+   !Cert( $C, certC, 'chip' )
+   ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, certC, ~r2, '2', 'c'> ), Out( ~iid ),
+   TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~r2 )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [
+     In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~iid ), Fr( ~r2 ),
+     !Cert( $C, certC, 'chip' )
+     ]
+    --[ Eq( z, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, certC, ~r2, '2', 'c'> ), Out( ~iid ),
+     TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~r2 )
+     ]
+    variants (modulo AC)
+    1. certT = certT.15
+       z     = verify(cert_sig(certT.15),
+                      <cert_pk(certT.15), cert_id(certT.15), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(x.16, sign(<x.16, x.17, 'terminal'>, ca_sk), x.17)
+       z     = true
+    
+    3. certT = cert(x.17, x.18, x.19)
+       z     = verify(x.18, <x.17, x.19, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, certC, r2, '2', 'c'> ), TAInitT( <$T, iid> ),
+   !Ltk( $T, ~skT, 'terminal' ), !Cert( $T, certT, 'terminal' ), Fr( ~k )
+   ]
+  --[ Eq( verify_cert(certC, 'chip'), true ) ]->
+   [
+   Out( <encaps(~k, cert_pk(certC)), sign(<'TA', id_c, r1>, ~skT), 
+         sign(<'CA', certT, certC, r2, encaps(~k, cert_pk(certC))>, ~skT), '3', 
+         't'>
+   ),
+   CAInitT( <$T, iid>, id_c, certC, r2, <~k, encaps(~k, cert_pk(certC))> )
+   ]
+
+  /*
+  rule (modulo AC) TA_RESPONSE_T:
+     [
+     In( <id_c, r1, certC, r2, '2', 'c'> ), TAInitT( <$T, iid> ),
+     !Ltk( $T, ~skT, 'terminal' ), !Cert( $T, certT, 'terminal' ), Fr( ~k )
+     ]
+    --[ Eq( z.1, true ) ]->
+     [
+     Out( <encaps(~k, z), sign(<'TA', id_c, r1>, ~skT), 
+           sign(<'CA', certT, certC, r2, encaps(~k, z)>, ~skT), '3', 't'>
+     ),
+     CAInitT( <$T, iid>, id_c, certC, r2, <~k, encaps(~k, z)> )
+     ]
+    variants (modulo AC)
+    1. certC = certC.20
+       z     = cert_pk(certC.20)
+       z.1   = verify(cert_sig(certC.20),
+                      <cert_pk(certC.20), cert_id(certC.20), 'chip'>, pk(ca_sk))
+    
+    2. certC = cert(z.57, sign(<z.57, x.100, 'chip'>, ca_sk), x.100)
+       z     = z.57
+       z.1   = true
+    
+    3. certC = cert(z.58, x.101, x.102)
+       z     = z.58
+       z.1   = verify(x.101, <z.58, x.102, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_COMPLETE_C:
+   [
+   In( <cip, s1, s2, '3', 't'> ),
+   TAChallengeC( <$C, iid>, certT, id_c, r1, r2 ), !Ltk( $C, ~skC, 'chip' ),
+   !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( verify(s1, <'TA', id_c, r1>, cert_pk(certT)), true ),
+  Eq( verify(s2, <'CA', certT, certC, r2, cip>, cert_pk(certT)), true ),
+  CompletedTA( $C, iid, cert_id(certT) ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, decaps(cip, ~skC)),
+             <certT, certC, r2, cip>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <kdf(<'CNF', certT, certC, r2, cip>, decaps(cip, ~skC)), '4', 'c'>
+   ),
+   TACompleteC( <$C, iid>, certT, id_c, r1, r2 )
+   ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [
+     In( <cip, s1, s2, '3', 't'> ),
+     TAChallengeC( <$C, iid>, certT, id_c, r1, r2 ), !Ltk( $C, ~skC, 'chip' ),
+     !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( z.1, true ), Eq( z.2, true ), CompletedTA( $C, iid, z.3 ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, z),
+               <certT, certC, r2, cip>, $C, 'chip', z.3
+    )
+    ]->
+     [
+     Out( <kdf(<'CNF', certT, certC, r2, cip>, z), '4', 'c'> ),
+     TACompleteC( <$C, iid>, certT, id_c, r1, r2 )
+     ]
+    variants (modulo AC)
+     1. ~skC  = ~skC.32
+        certC = certC.33
+        certT = certT.34
+        cip   = cip.35
+        id_c  = id_c.36
+        r1    = r1.38
+        r2    = r2.39
+        s1    = s1.40
+        s2    = s2.41
+        z     = decaps(cip.35, ~skC.32)
+        z.1   = verify(s1.40, <'TA', id_c.36, r1.38>, cert_pk(certT.34))
+        z.2   = verify(s2.41, <'CA', certT.34, certC.33, r2.39, cip.35>,
+                       cert_pk(certT.34))
+        z.3   = cert_id(certT.34)
+    
+     2. ~skC  = ~skC.37
+        certC = certC.38
+        certT = certT.39
+        cip   = encaps(z.51, pk(~skC.37))
+        id_c  = id_c.41
+        r1    = r1.43
+        r2    = r2.44
+        s1    = s1.45
+        s2    = s2.46
+        z     = z.51
+        z.1   = verify(s1.45, <'TA', id_c.41, r1.43>, cert_pk(certT.39))
+        z.2   = verify(s2.46,
+                       <'CA', certT.39, certC.38, r2.44, encaps(z.51, pk(~skC.37))>,
+                       cert_pk(certT.39))
+        z.3   = cert_id(certT.39)
+    
+     3. ~skC  = ~skC.150
+        certC = certC.151
+        certT = cert(x.296, x.297, z.169)
+        cip   = cip.153
+        id_c  = id_c.154
+        r1    = r1.156
+        r2    = r2.157
+        s1    = s1.158
+        s2    = s2.159
+        z     = decaps(cip.153, ~skC.150)
+        z.1   = verify(s1.158, <'TA', id_c.154, r1.156>, x.296)
+        z.2   = verify(s2.159,
+                       <'CA', cert(x.296, x.297, z.169), certC.151, r2.157, cip.153>, x.296)
+        z.3   = z.169
+    
+     4. ~skC  = ~skC.150
+        certC = certC.151
+        certT = cert(pk(x.296), x.297, z.169)
+        cip   = cip.153
+        id_c  = id_c.154
+        r1    = r1.156
+        r2    = r2.157
+        s1    = sign(<'TA', id_c.154, r1.156>, x.296)
+        s2    = s2.159
+        z     = decaps(cip.153, ~skC.150)
+        z.1   = true
+        z.2   = verify(s2.159,
+                       <'CA', cert(pk(x.296), x.297, z.169), certC.151, r2.157, cip.153>,
+                       pk(x.296))
+        z.3   = z.169
+    
+     5. ~skC  = ~skC.151
+        certC = certC.152
+        certT = cert(pk(x.298), x.299, z.170)
+        cip   = cip.154
+        id_c  = id_c.155
+        r1    = r1.157
+        r2    = r2.158
+        s1    = s1.159
+        s2    = sign(<'CA', cert(pk(x.298), x.299, z.170), certC.152, r2.158, 
+                      cip.154>,
+                     x.298)
+        z     = decaps(cip.154, ~skC.151)
+        z.1   = verify(s1.159, <'TA', id_c.155, r1.157>, pk(x.298))
+        z.2   = true
+        z.3   = z.170
+    
+     6. ~skC  = ~skC.151
+        certC = certC.152
+        certT = cert(pk(x.298), x.299, z.170)
+        cip   = cip.154
+        id_c  = id_c.155
+        r1    = r1.157
+        r2    = r2.158
+        s1    = sign(<'TA', id_c.155, r1.157>, x.298)
+        s2    = sign(<'CA', cert(pk(x.298), x.299, z.170), certC.152, r2.158, 
+                      cip.154>,
+                     x.298)
+        z     = decaps(cip.154, ~skC.151)
+        z.1   = true
+        z.2   = true
+        z.3   = z.170
+    
+     7. ~skC  = ~skC.152
+        certC = certC.153
+        certT = cert(x.300, x.301, z.171)
+        cip   = encaps(z.166, pk(~skC.152))
+        id_c  = id_c.156
+        r1    = r1.158
+        r2    = r2.159
+        s1    = s1.160
+        s2    = s2.161
+        z     = z.166
+        z.1   = verify(s1.160, <'TA', id_c.156, r1.158>, x.300)
+        z.2   = verify(s2.161,
+                       <'CA', cert(x.300, x.301, z.171), certC.153, r2.159, 
+                        encaps(z.166, pk(~skC.152))>,
+                       x.300)
+        z.3   = z.171
+    
+     8. ~skC  = ~skC.152
+        certC = certC.153
+        certT = cert(pk(x.300), x.301, z.171)
+        cip   = encaps(z.166, pk(~skC.152))
+        id_c  = id_c.156
+        r1    = r1.158
+        r2    = r2.159
+        s1    = s1.160
+        s2    = sign(<'CA', cert(pk(x.300), x.301, z.171), certC.153, r2.159, 
+                      encaps(z.166, pk(~skC.152))>,
+                     x.300)
+        z     = z.166
+        z.1   = verify(s1.160, <'TA', id_c.156, r1.158>, pk(x.300))
+        z.2   = true
+        z.3   = z.171
+    
+     9. ~skC  = ~skC.152
+        certC = certC.153
+        certT = cert(pk(x.300), x.301, z.171)
+        cip   = encaps(z.166, pk(~skC.152))
+        id_c  = id_c.156
+        r1    = r1.158
+        r2    = r2.159
+        s1    = sign(<'TA', id_c.156, r1.158>, x.300)
+        s2    = s2.161
+        z     = z.166
+        z.1   = true
+        z.2   = verify(s2.161,
+                       <'CA', cert(pk(x.300), x.301, z.171), certC.153, r2.159, 
+                        encaps(z.166, pk(~skC.152))>,
+                       pk(x.300))
+        z.3   = z.171
+    
+    10. ~skC  = ~skC.152
+        certC = certC.153
+        certT = cert(pk(x.300), x.301, z.171)
+        cip   = encaps(z.166, pk(~skC.152))
+        id_c  = id_c.156
+        r1    = r1.158
+        r2    = r2.159
+        s1    = sign(<'TA', id_c.156, r1.158>, x.300)
+        s2    = sign(<'CA', cert(pk(x.300), x.301, z.171), certC.153, r2.159, 
+                      encaps(z.166, pk(~skC.152))>,
+                     x.300)
+        z     = z.166
+        z.1   = true
+        z.2   = true
+        z.3   = z.171
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <kCNF_C, '4', 'c'> ),
+   CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( kdf(<'CNF', certT, certC, r2, cip>, k), kCNF_C ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, k),
+             <certT, certC, r2, cip>, $T, 'terminal', cert_id(certC)
+  ),
+  Finished( <certT, certC, r2, cip> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T, kdf(<'KEY', certT, certC, r2, cip>, k) ),
+   !SessionReveal( <certT, certC, r2, cip>,
+                   kdf(<'KEY', certT, certC, r2, cip>, k)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <kCNF_C, '4', 'c'> ),
+     CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( kdf(<'CNF', certT, certC, r2, cip>, k), kCNF_C ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, k),
+               <certT, certC, r2, cip>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, r2, cip> )
+    ]->
+     [
+     CAFinishT( z, $T, kdf(<'KEY', certT, certC, r2, cip>, k) ),
+     !SessionReveal( <certT, certC, r2, cip>,
+                     kdf(<'KEY', certT, certC, r2, cip>, k)
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.15
+       z     = cert_id(certC.15)
+    
+    2. certC = cert(x.41, x.42, z.28)
+       z     = z.28
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, IDc, r1, sT, certC, r2, cip, sC, kCNF> ),
+   !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(certC) ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(sT, <'TA', IDc, r1>, cert_pk(certT)), true ),
+  Eq( verify(sC, <'CA', certT, certC, r2, cip>, cert_pk(certT)), true ),
+  Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip>, decaps(cip, skC)) ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, IDc, r1, sT, certC, r2, cip, sC, kCNF> ),
+     !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( z.1, true ), Eq( z.2, true ), Eq( z.3, true ),
+    Eq( z.4, true ), Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip>, z.5) ),
+    ValidTrans( C, 'chip', z.6 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. IDc   = IDc.31
+        certC = certC.32
+        certT = certT.33
+        cip   = cip.34
+        r1    = r1.36
+        r2    = r2.37
+        sC    = sC.38
+        sT    = sT.39
+        skC   = skC.40
+        z     = cert_id(certC.32)
+        z.1   = verify(cert_sig(certT.33),
+                       <cert_pk(certT.33), cert_id(certT.33), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.32),
+                       <cert_pk(certC.32), cert_id(certC.32), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.39, <'TA', IDc.31, r1.36>, cert_pk(certT.33))
+        z.4   = verify(sC.38, <'CA', certT.33, certC.32, r2.37, cip.34>,
+                       cert_pk(certT.33))
+        z.5   = decaps(cip.34, skC.40)
+        z.6   = cert_id(certT.33)
+    
+     2. IDc   = IDc.39
+        certC = certC.40
+        certT = certT.41
+        cip   = encaps(z.56, pk(skC.48))
+        r1    = r1.44
+        r2    = r2.45
+        sC    = sC.46
+        sT    = sT.47
+        skC   = skC.48
+        z     = cert_id(certC.40)
+        z.1   = verify(cert_sig(certT.41),
+                       <cert_pk(certT.41), cert_id(certT.41), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.40),
+                       <cert_pk(certC.40), cert_id(certC.40), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.47, <'TA', IDc.39, r1.44>, cert_pk(certT.41))
+        z.4   = verify(sC.46,
+                       <'CA', certT.41, certC.40, r2.45, encaps(z.56, pk(skC.48))>,
+                       cert_pk(certT.41))
+        z.5   = z.56
+        z.6   = cert_id(certT.41)
+    
+     3. IDc   = IDc.41
+        certC = certC.42
+        certT = cert(x.79, sign(<x.79, z.59, 'terminal'>, ca_sk), z.59)
+        cip   = cip.44
+        r1    = r1.46
+        r2    = r2.47
+        sC    = sC.48
+        sT    = sT.49
+        skC   = skC.50
+        z     = cert_id(certC.42)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.42),
+                       <cert_pk(certC.42), cert_id(certC.42), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.49, <'TA', IDc.41, r1.46>, x.79)
+        z.4   = verify(sC.48,
+                       <'CA', cert(x.79, sign(<x.79, z.59, 'terminal'>, ca_sk), z.59), 
+                        certC.42, r2.47, cip.44>,
+                       x.79)
+        z.5   = decaps(cip.44, skC.50)
+        z.6   = z.59
+    
+     4. IDc   = IDc.41
+        certC = certC.42
+        certT = cert(x.79, sign(<x.79, z.59, 'terminal'>, ca_sk), z.59)
+        cip   = encaps(z.58, pk(skC.50))
+        r1    = r1.46
+        r2    = r2.47
+        sC    = sC.48
+        sT    = sT.49
+        skC   = skC.50
+        z     = cert_id(certC.42)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.42),
+                       <cert_pk(certC.42), cert_id(certC.42), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.49, <'TA', IDc.41, r1.46>, x.79)
+        z.4   = verify(sC.48,
+                       <'CA', cert(x.79, sign(<x.79, z.59, 'terminal'>, ca_sk), z.59), 
+                        certC.42, r2.47, encaps(z.58, pk(skC.50))>,
+                       x.79)
+        z.5   = z.58
+        z.6   = z.59
+    
+     5. IDc   = IDc.41
+        certC = cert(x.79, sign(<x.79, z.52, 'chip'>, ca_sk), z.52)
+        certT = certT.43
+        cip   = cip.44
+        r1    = r1.46
+        r2    = r2.47
+        sC    = sC.48
+        sT    = sT.49
+        skC   = skC.50
+        z     = z.52
+        z.1   = verify(cert_sig(certT.43),
+                       <cert_pk(certT.43), cert_id(certT.43), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.49, <'TA', IDc.41, r1.46>, cert_pk(certT.43))
+        z.4   = verify(sC.48,
+                       <'CA', certT.43, cert(x.79, sign(<x.79, z.52, 'chip'>, ca_sk), z.52), 
+                        r2.47, cip.44>,
+                       cert_pk(certT.43))
+        z.5   = decaps(cip.44, skC.50)
+        z.6   = cert_id(certT.43)
+    
+     6. IDc   = IDc.41
+        certC = cert(x.79, sign(<x.79, z.52, 'chip'>, ca_sk), z.52)
+        certT = certT.43
+        cip   = encaps(z.58, pk(skC.50))
+        r1    = r1.46
+        r2    = r2.47
+        sC    = sC.48
+        sT    = sT.49
+        skC   = skC.50
+        z     = z.52
+        z.1   = verify(cert_sig(certT.43),
+                       <cert_pk(certT.43), cert_id(certT.43), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.49, <'TA', IDc.41, r1.46>, cert_pk(certT.43))
+        z.4   = verify(sC.48,
+                       <'CA', certT.43, cert(x.79, sign(<x.79, z.52, 'chip'>, ca_sk), z.52), 
+                        r2.47, encaps(z.58, pk(skC.50))>,
+                       cert_pk(certT.43))
+        z.5   = z.58
+        z.6   = cert_id(certT.43)
+    
+     7. IDc   = IDc.42
+        certC = certC.43
+        certT = cert(x.80, x.81, z.60)
+        cip   = cip.45
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sC.49
+        sT    = sT.50
+        skC   = skC.51
+        z     = cert_id(certC.43)
+        z.1   = verify(x.81, <x.80, z.60, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.43),
+                       <cert_pk(certC.43), cert_id(certC.43), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, x.80)
+        z.4   = verify(sC.49,
+                       <'CA', cert(x.80, x.81, z.60), certC.43, r2.48, cip.45>, x.80)
+        z.5   = decaps(cip.45, skC.51)
+        z.6   = z.60
+    
+     8. IDc   = IDc.42
+        certC = certC.43
+        certT = cert(x.80, x.81, z.60)
+        cip   = encaps(z.59, pk(skC.51))
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sC.49
+        sT    = sT.50
+        skC   = skC.51
+        z     = cert_id(certC.43)
+        z.1   = verify(x.81, <x.80, z.60, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.43),
+                       <cert_pk(certC.43), cert_id(certC.43), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, x.80)
+        z.4   = verify(sC.49,
+                       <'CA', cert(x.80, x.81, z.60), certC.43, r2.48, encaps(z.59, pk(skC.51))
+                       >,
+                       x.80)
+        z.5   = z.59
+        z.6   = z.60
+    
+     9. IDc   = IDc.42
+        certC = certC.43
+        certT = cert(pk(x.81), sign(<pk(x.81), z.60, 'terminal'>, ca_sk), z.60)
+        cip   = cip.45
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sign(<'CA', 
+                      cert(pk(x.81), sign(<pk(x.81), z.60, 'terminal'>, ca_sk), z.60), 
+                      certC.43, r2.48, cip.45>,
+                     x.81)
+        sT    = sT.50
+        skC   = skC.51
+        z     = cert_id(certC.43)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.43),
+                       <cert_pk(certC.43), cert_id(certC.43), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, pk(x.81))
+        z.4   = true
+        z.5   = decaps(cip.45, skC.51)
+        z.6   = z.60
+    
+    10. IDc   = IDc.42
+        certC = certC.43
+        certT = cert(pk(x.81), sign(<pk(x.81), z.60, 'terminal'>, ca_sk), z.60)
+        cip   = encaps(z.59, pk(skC.51))
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sign(<'CA', 
+                      cert(pk(x.81), sign(<pk(x.81), z.60, 'terminal'>, ca_sk), z.60), 
+                      certC.43, r2.48, encaps(z.59, pk(skC.51))>,
+                     x.81)
+        sT    = sT.50
+        skC   = skC.51
+        z     = cert_id(certC.43)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.43),
+                       <cert_pk(certC.43), cert_id(certC.43), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, pk(x.81))
+        z.4   = true
+        z.5   = z.59
+        z.6   = z.60
+    
+    11. IDc   = IDc.42
+        certC = cert(x.80, x.81, z.53)
+        certT = certT.44
+        cip   = cip.45
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sC.49
+        sT    = sT.50
+        skC   = skC.51
+        z     = z.53
+        z.1   = verify(cert_sig(certT.44),
+                       <cert_pk(certT.44), cert_id(certT.44), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.81, <x.80, z.53, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, cert_pk(certT.44))
+        z.4   = verify(sC.49,
+                       <'CA', certT.44, cert(x.80, x.81, z.53), r2.48, cip.45>,
+                       cert_pk(certT.44))
+        z.5   = decaps(cip.45, skC.51)
+        z.6   = cert_id(certT.44)
+    
+    12. IDc   = IDc.42
+        certC = cert(x.80, x.81, z.53)
+        certT = certT.44
+        cip   = encaps(z.59, pk(skC.51))
+        r1    = r1.47
+        r2    = r2.48
+        sC    = sC.49
+        sT    = sT.50
+        skC   = skC.51
+        z     = z.53
+        z.1   = verify(cert_sig(certT.44),
+                       <cert_pk(certT.44), cert_id(certT.44), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.81, <x.80, z.53, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.50, <'TA', IDc.42, r1.47>, cert_pk(certT.44))
+        z.4   = verify(sC.49,
+                       <'CA', certT.44, cert(x.80, x.81, z.53), r2.48, encaps(z.59, pk(skC.51))
+                       >,
+                       cert_pk(certT.44))
+        z.5   = z.59
+        z.6   = cert_id(certT.44)
+    
+    13. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.82), x.83, z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', cert(pk(x.82), x.83, z.61), certC.44, r2.49, cip.46>,
+                     x.82)
+        sT    = sT.51
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = verify(x.83, <pk(x.82), z.61, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, pk(x.82))
+        z.4   = true
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    14. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.82), x.83, z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', cert(pk(x.82), x.83, z.61), certC.44, r2.49, 
+                      encaps(z.60, pk(skC.52))>,
+                     x.82)
+        sT    = sT.51
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = verify(x.83, <pk(x.82), z.61, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, pk(x.82))
+        z.4   = true
+        z.5   = z.60
+        z.6   = z.61
+    
+    15. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sC.50
+        sT    = sign(<'TA', IDc.43, r1.48>, x.83)
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.50,
+                       <'CA', cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                        certC.44, r2.49, cip.46>,
+                       pk(x.83))
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    16. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', 
+                      cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                      certC.44, r2.49, cip.46>,
+                     x.83)
+        sT    = sign(<'TA', IDc.43, r1.48>, x.83)
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    17. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sC.50
+        sT    = sign(<'TA', IDc.43, r1.48>, x.83)
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.50,
+                       <'CA', cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                        certC.44, r2.49, encaps(z.60, pk(skC.52))>,
+                       pk(x.83))
+        z.5   = z.60
+        z.6   = z.61
+    
+    18. IDc   = IDc.43
+        certC = certC.44
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', 
+                      cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                      certC.44, r2.49, encaps(z.60, pk(skC.52))>,
+                     x.83)
+        sT    = sign(<'TA', IDc.43, r1.48>, x.83)
+        skC   = skC.52
+        z     = cert_id(certC.44)
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.60
+        z.6   = z.61
+    
+    19. IDc   = IDc.43
+        certC = cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54)
+        certT = cert(x.83, sign(<x.83, z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sC.50
+        sT    = sT.51
+        skC   = skC.52
+        z     = z.54
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, x.83)
+        z.4   = verify(sC.50,
+                       <'CA', cert(x.83, sign(<x.83, z.61, 'terminal'>, ca_sk), z.61), 
+                        cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54), r2.49, cip.46>,
+                       x.83)
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    20. IDc   = IDc.43
+        certC = cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54)
+        certT = cert(x.83, sign(<x.83, z.61, 'terminal'>, ca_sk), z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sC.50
+        sT    = sT.51
+        skC   = skC.52
+        z     = z.54
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, x.83)
+        z.4   = verify(sC.50,
+                       <'CA', cert(x.83, sign(<x.83, z.61, 'terminal'>, ca_sk), z.61), 
+                        cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54), r2.49, 
+                        encaps(z.60, pk(skC.52))>,
+                       x.83)
+        z.5   = z.60
+        z.6   = z.61
+    
+    21. IDc   = IDc.43
+        certC = cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54)
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.46
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', 
+                      cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                      cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54), r2.49, cip.46>,
+                     x.83)
+        sT    = sT.51
+        skC   = skC.52
+        z     = z.54
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, pk(x.83))
+        z.4   = true
+        z.5   = decaps(cip.46, skC.52)
+        z.6   = z.61
+    
+    22. IDc   = IDc.43
+        certC = cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54)
+        certT = cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61)
+        cip   = encaps(z.60, pk(skC.52))
+        r1    = r1.48
+        r2    = r2.49
+        sC    = sign(<'CA', 
+                      cert(pk(x.83), sign(<pk(x.83), z.61, 'terminal'>, ca_sk), z.61), 
+                      cert(x.81, sign(<x.81, z.54, 'chip'>, ca_sk), z.54), r2.49, 
+                      encaps(z.60, pk(skC.52))>,
+                     x.83)
+        sT    = sT.51
+        skC   = skC.52
+        z     = z.54
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.51, <'TA', IDc.43, r1.48>, pk(x.83))
+        z.4   = true
+        z.5   = z.60
+        z.6   = z.61
+    
+    23. IDc   = IDc.44
+        certC = certC.45
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sign(<'TA', IDc.44, r1.49>, x.84)
+        skC   = skC.53
+        z     = cert_id(certC.45)
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.51,
+                       <'CA', cert(pk(x.84), x.85, z.62), certC.45, r2.50, cip.47>, pk(x.84))
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    24. IDc   = IDc.44
+        certC = certC.45
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', cert(pk(x.84), x.85, z.62), certC.45, r2.50, cip.47>,
+                     x.84)
+        sT    = sign(<'TA', IDc.44, r1.49>, x.84)
+        skC   = skC.53
+        z     = cert_id(certC.45)
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    25. IDc   = IDc.44
+        certC = certC.45
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sign(<'TA', IDc.44, r1.49>, x.84)
+        skC   = skC.53
+        z     = cert_id(certC.45)
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.51,
+                       <'CA', cert(pk(x.84), x.85, z.62), certC.45, r2.50, 
+                        encaps(z.61, pk(skC.53))>,
+                       pk(x.84))
+        z.5   = z.61
+        z.6   = z.62
+    
+    26. IDc   = IDc.44
+        certC = certC.45
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', cert(pk(x.84), x.85, z.62), certC.45, r2.50, 
+                      encaps(z.61, pk(skC.53))>,
+                     x.84)
+        sT    = sign(<'TA', IDc.44, r1.49>, x.84)
+        skC   = skC.53
+        z     = cert_id(certC.45)
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.61
+        z.6   = z.62
+    
+    27. IDc   = IDc.44
+        certC = cert(x.82, x.83, z.55)
+        certT = cert(x.85, sign(<x.85, z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(x.83, <x.82, z.55, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, x.85)
+        z.4   = verify(sC.51,
+                       <'CA', cert(x.85, sign(<x.85, z.62, 'terminal'>, ca_sk), z.62), 
+                        cert(x.82, x.83, z.55), r2.50, cip.47>,
+                       x.85)
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    28. IDc   = IDc.44
+        certC = cert(x.82, x.83, z.55)
+        certT = cert(x.85, sign(<x.85, z.62, 'terminal'>, ca_sk), z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(x.83, <x.82, z.55, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, x.85)
+        z.4   = verify(sC.51,
+                       <'CA', cert(x.85, sign(<x.85, z.62, 'terminal'>, ca_sk), z.62), 
+                        cert(x.82, x.83, z.55), r2.50, encaps(z.61, pk(skC.53))>,
+                       x.85)
+        z.5   = z.61
+        z.6   = z.62
+    
+    29. IDc   = IDc.44
+        certC = cert(x.82, x.83, z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', 
+                      cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.82, x.83, z.55), r2.50, cip.47>,
+                     x.85)
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(x.83, <x.82, z.55, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, pk(x.85))
+        z.4   = true
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    30. IDc   = IDc.44
+        certC = cert(x.82, x.83, z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', 
+                      cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.82, x.83, z.55), r2.50, encaps(z.61, pk(skC.53))>,
+                     x.85)
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(x.83, <x.82, z.55, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, pk(x.85))
+        z.4   = true
+        z.5   = z.61
+        z.6   = z.62
+    
+    31. IDc   = IDc.44
+        certC = cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(x.84, x.85, z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = verify(x.85, <x.84, z.62, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, x.84)
+        z.4   = verify(sC.51,
+                       <'CA', cert(x.84, x.85, z.62), 
+                        cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55), r2.50, cip.47>,
+                       x.84)
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    32. IDc   = IDc.44
+        certC = cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(x.84, x.85, z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = verify(x.85, <x.84, z.62, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, x.84)
+        z.4   = verify(sC.51,
+                       <'CA', cert(x.84, x.85, z.62), 
+                        cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55), r2.50, 
+                        encaps(z.61, pk(skC.53))>,
+                       x.84)
+        z.5   = z.61
+        z.6   = z.62
+    
+    33. IDc   = IDc.44
+        certC = cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', cert(pk(x.84), x.85, z.62), 
+                      cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55), r2.50, cip.47>,
+                     x.84)
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, pk(x.84))
+        z.4   = true
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    34. IDc   = IDc.44
+        certC = cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.84), x.85, z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', cert(pk(x.84), x.85, z.62), 
+                      cert(x.82, sign(<x.82, z.55, 'chip'>, ca_sk), z.55), r2.50, 
+                      encaps(z.61, pk(skC.53))>,
+                     x.84)
+        sT    = sT.52
+        skC   = skC.53
+        z     = z.55
+        z.1   = verify(x.85, <pk(x.84), z.62, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.52, <'TA', IDc.44, r1.49>, pk(x.84))
+        z.4   = true
+        z.5   = z.61
+        z.6   = z.62
+    
+    35. IDc   = IDc.44
+        certC = cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sign(<'TA', IDc.44, r1.49>, x.85)
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.51,
+                       <'CA', cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                        cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55), r2.50, cip.47>,
+                       pk(x.85))
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    36. IDc   = IDc.44
+        certC = cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.47
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', 
+                      cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55), r2.50, cip.47>,
+                     x.85)
+        sT    = sign(<'TA', IDc.44, r1.49>, x.85)
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.47, skC.53)
+        z.6   = z.62
+    
+    37. IDc   = IDc.44
+        certC = cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sC.51
+        sT    = sign(<'TA', IDc.44, r1.49>, x.85)
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.51,
+                       <'CA', cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                        cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55), r2.50, 
+                        encaps(z.61, pk(skC.53))>,
+                       pk(x.85))
+        z.5   = z.61
+        z.6   = z.62
+    
+    38. IDc   = IDc.44
+        certC = cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55)
+        certT = cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62)
+        cip   = encaps(z.61, pk(skC.53))
+        r1    = r1.49
+        r2    = r2.50
+        sC    = sign(<'CA', 
+                      cert(pk(x.85), sign(<pk(x.85), z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.83, sign(<x.83, z.55, 'chip'>, ca_sk), z.55), r2.50, 
+                      encaps(z.61, pk(skC.53))>,
+                     x.85)
+        sT    = sign(<'TA', IDc.44, r1.49>, x.85)
+        skC   = skC.53
+        z     = z.55
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.61
+        z.6   = z.62
+    
+    39. IDc   = IDc.45
+        certC = cert(x.83, x.84, z.56)
+        certT = cert(x.86, x.87, z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <x.86, z.63, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.56, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.45, r1.50>, x.86)
+        z.4   = verify(sC.52,
+                       <'CA', cert(x.86, x.87, z.63), cert(x.83, x.84, z.56), r2.51, cip.48>,
+                       x.86)
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    40. IDc   = IDc.45
+        certC = cert(x.83, x.84, z.56)
+        certT = cert(x.86, x.87, z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <x.86, z.63, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.56, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.45, r1.50>, x.86)
+        z.4   = verify(sC.52,
+                       <'CA', cert(x.86, x.87, z.63), cert(x.83, x.84, z.56), r2.51, 
+                        encaps(z.62, pk(skC.54))>,
+                       x.86)
+        z.5   = z.62
+        z.6   = z.63
+    
+    41. IDc   = IDc.45
+        certC = cert(x.83, x.84, z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', cert(pk(x.86), x.87, z.63), cert(x.83, x.84, z.56), 
+                      r2.51, cip.48>,
+                     x.86)
+        sT    = sT.53
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.56, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.45, r1.50>, pk(x.86))
+        z.4   = true
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    42. IDc   = IDc.45
+        certC = cert(x.83, x.84, z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', cert(pk(x.86), x.87, z.63), cert(x.83, x.84, z.56), 
+                      r2.51, encaps(z.62, pk(skC.54))>,
+                     x.86)
+        sT    = sT.53
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.56, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.45, r1.50>, pk(x.86))
+        z.4   = true
+        z.5   = z.62
+        z.6   = z.63
+    
+    43. IDc   = IDc.45
+        certC = cert(x.84, x.85, z.56)
+        certT = cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sign(<'TA', IDc.45, r1.50>, x.87)
+        skC   = skC.54
+        z     = z.56
+        z.1   = true
+        z.2   = verify(x.85, <x.84, z.56, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.52,
+                       <'CA', cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63), 
+                        cert(x.84, x.85, z.56), r2.51, cip.48>,
+                       pk(x.87))
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    44. IDc   = IDc.45
+        certC = cert(x.84, x.85, z.56)
+        certT = cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', 
+                      cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63), 
+                      cert(x.84, x.85, z.56), r2.51, cip.48>,
+                     x.87)
+        sT    = sign(<'TA', IDc.45, r1.50>, x.87)
+        skC   = skC.54
+        z     = z.56
+        z.1   = true
+        z.2   = verify(x.85, <x.84, z.56, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    45. IDc   = IDc.45
+        certC = cert(x.84, x.85, z.56)
+        certT = cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sign(<'TA', IDc.45, r1.50>, x.87)
+        skC   = skC.54
+        z     = z.56
+        z.1   = true
+        z.2   = verify(x.85, <x.84, z.56, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.52,
+                       <'CA', cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63), 
+                        cert(x.84, x.85, z.56), r2.51, encaps(z.62, pk(skC.54))>,
+                       pk(x.87))
+        z.5   = z.62
+        z.6   = z.63
+    
+    46. IDc   = IDc.45
+        certC = cert(x.84, x.85, z.56)
+        certT = cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', 
+                      cert(pk(x.87), sign(<pk(x.87), z.63, 'terminal'>, ca_sk), z.63), 
+                      cert(x.84, x.85, z.56), r2.51, encaps(z.62, pk(skC.54))>,
+                     x.87)
+        sT    = sign(<'TA', IDc.45, r1.50>, x.87)
+        skC   = skC.54
+        z     = z.56
+        z.1   = true
+        z.2   = verify(x.85, <x.84, z.56, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.62
+        z.6   = z.63
+    
+    47. IDc   = IDc.45
+        certC = cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sign(<'TA', IDc.45, r1.50>, x.86)
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.52,
+                       <'CA', cert(pk(x.86), x.87, z.63), 
+                        cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56), r2.51, cip.48>,
+                       pk(x.86))
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    48. IDc   = IDc.45
+        certC = cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = cip.48
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', cert(pk(x.86), x.87, z.63), 
+                      cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56), r2.51, cip.48>,
+                     x.86)
+        sT    = sign(<'TA', IDc.45, r1.50>, x.86)
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.48, skC.54)
+        z.6   = z.63
+    
+    49. IDc   = IDc.45
+        certC = cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sign(<'TA', IDc.45, r1.50>, x.86)
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.52,
+                       <'CA', cert(pk(x.86), x.87, z.63), 
+                        cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56), r2.51, 
+                        encaps(z.62, pk(skC.54))>,
+                       pk(x.86))
+        z.5   = z.62
+        z.6   = z.63
+    
+    50. IDc   = IDc.45
+        certC = cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56)
+        certT = cert(pk(x.86), x.87, z.63)
+        cip   = encaps(z.62, pk(skC.54))
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sign(<'CA', cert(pk(x.86), x.87, z.63), 
+                      cert(x.84, sign(<x.84, z.56, 'chip'>, ca_sk), z.56), r2.51, 
+                      encaps(z.62, pk(skC.54))>,
+                     x.86)
+        sT    = sign(<'TA', IDc.45, r1.50>, x.86)
+        skC   = skC.54
+        z     = z.56
+        z.1   = verify(x.87, <pk(x.86), z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.62
+        z.6   = z.63
+    
+    51. IDc   = IDc.46
+        certC = cert(x.85, x.86, z.57)
+        certT = cert(pk(x.88), x.89, z.64)
+        cip   = cip.49
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sC.53
+        sT    = sign(<'TA', IDc.46, r1.51>, x.88)
+        skC   = skC.55
+        z     = z.57
+        z.1   = verify(x.89, <pk(x.88), z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.86, <x.85, z.57, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.53,
+                       <'CA', cert(pk(x.88), x.89, z.64), cert(x.85, x.86, z.57), r2.52, cip.49
+                       >,
+                       pk(x.88))
+        z.5   = decaps(cip.49, skC.55)
+        z.6   = z.64
+    
+    52. IDc   = IDc.46
+        certC = cert(x.85, x.86, z.57)
+        certT = cert(pk(x.88), x.89, z.64)
+        cip   = cip.49
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sign(<'CA', cert(pk(x.88), x.89, z.64), cert(x.85, x.86, z.57), 
+                      r2.52, cip.49>,
+                     x.88)
+        sT    = sign(<'TA', IDc.46, r1.51>, x.88)
+        skC   = skC.55
+        z     = z.57
+        z.1   = verify(x.89, <pk(x.88), z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.86, <x.85, z.57, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = decaps(cip.49, skC.55)
+        z.6   = z.64
+    
+    53. IDc   = IDc.46
+        certC = cert(x.85, x.86, z.57)
+        certT = cert(pk(x.88), x.89, z.64)
+        cip   = encaps(z.63, pk(skC.55))
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sC.53
+        sT    = sign(<'TA', IDc.46, r1.51>, x.88)
+        skC   = skC.55
+        z     = z.57
+        z.1   = verify(x.89, <pk(x.88), z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.86, <x.85, z.57, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.53,
+                       <'CA', cert(pk(x.88), x.89, z.64), cert(x.85, x.86, z.57), r2.52, 
+                        encaps(z.63, pk(skC.55))>,
+                       pk(x.88))
+        z.5   = z.63
+        z.6   = z.64
+    
+    54. IDc   = IDc.46
+        certC = cert(x.85, x.86, z.57)
+        certT = cert(pk(x.88), x.89, z.64)
+        cip   = encaps(z.63, pk(skC.55))
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sign(<'CA', cert(pk(x.88), x.89, z.64), cert(x.85, x.86, z.57), 
+                      r2.52, encaps(z.63, pk(skC.55))>,
+                     x.88)
+        sT    = sign(<'TA', IDc.46, r1.51>, x.88)
+        skC   = skC.55
+        z     = z.57
+        z.1   = verify(x.89, <pk(x.88), z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.86, <x.85, z.57, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.63
+        z.6   = z.64
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, IDc, r1, sT, certC, r2, cip, sC, kCNF> ), In( kKDF ),
+   !Pk( T, pkT, 'terminal' )
+   ]
+  --[
+  Eq( T, cert_id(certT) ), Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( verify_cert(certC, 'chip'), true ),
+  Eq( verify(sT, <'TA', IDc, r1>, pkT), true ),
+  Eq( verify(sC, <'CA', certT, certC, r2, cip>, pkT), true ),
+  Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip>, kKDF) ),
+  ValidTrans( T, 'terminal', cert_id(certC) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, IDc, r1, sT, certC, r2, cip, sC, kCNF> ), In( kKDF ),
+     !Pk( T, pkT, 'terminal' )
+     ]
+    --[
+    Eq( T, z ), Eq( z.1, true ), Eq( z.2, true ), Eq( z.3, true ),
+    Eq( z.4, true ), Eq( kCNF, kdf(<'CNF', certT, certC, r2, cip>, kKDF) ),
+    ValidTrans( T, 'terminal', z.5 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. IDc   = IDc.33
+        certC = certC.35
+        certT = certT.36
+        cip   = cip.37
+        pkT   = pkT.40
+        r1    = r1.41
+        r2    = r2.42
+        sC    = sC.43
+        sT    = sT.44
+        z     = cert_id(certT.36)
+        z.1   = verify(cert_sig(certT.36),
+                       <cert_pk(certT.36), cert_id(certT.36), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.35),
+                       <cert_pk(certC.35), cert_id(certC.35), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.44, <'TA', IDc.33, r1.41>, pkT.40)
+        z.4   = verify(sC.43, <'CA', certT.36, certC.35, r2.42, cip.37>, pkT.40)
+        z.5   = cert_id(certC.35)
+    
+     2. IDc   = IDc.42
+        certC = certC.44
+        certT = cert(x.82, sign(<x.82, z.55, 'terminal'>, ca_sk), z.55)
+        cip   = cip.46
+        pkT   = pkT.49
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        z     = z.55
+        z.1   = true
+        z.2   = verify(cert_sig(certC.44),
+                       <cert_pk(certC.44), cert_id(certC.44), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.53, <'TA', IDc.42, r1.50>, pkT.49)
+        z.4   = verify(sC.52,
+                       <'CA', cert(x.82, sign(<x.82, z.55, 'terminal'>, ca_sk), z.55), 
+                        certC.44, r2.51, cip.46>,
+                       pkT.49)
+        z.5   = cert_id(certC.44)
+    
+     3. IDc   = IDc.42
+        certC = cert(x.82, sign(<x.82, z.61, 'chip'>, ca_sk), z.61)
+        certT = certT.45
+        cip   = cip.46
+        pkT   = pkT.49
+        r1    = r1.50
+        r2    = r2.51
+        sC    = sC.52
+        sT    = sT.53
+        z     = cert_id(certT.45)
+        z.1   = verify(cert_sig(certT.45),
+                       <cert_pk(certT.45), cert_id(certT.45), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.53, <'TA', IDc.42, r1.50>, pkT.49)
+        z.4   = verify(sC.52,
+                       <'CA', certT.45, cert(x.82, sign(<x.82, z.61, 'chip'>, ca_sk), z.61), 
+                        r2.51, cip.46>,
+                       pkT.49)
+        z.5   = z.61
+    
+     4. IDc   = IDc.43
+        certC = certC.45
+        certT = cert(x.83, x.84, z.56)
+        cip   = cip.47
+        pkT   = pkT.50
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sC.53
+        sT    = sT.54
+        z     = z.56
+        z.1   = verify(x.84, <x.83, z.56, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.45),
+                       <cert_pk(certC.45), cert_id(certC.45), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.54, <'TA', IDc.43, r1.51>, pkT.50)
+        z.4   = verify(sC.53,
+                       <'CA', cert(x.83, x.84, z.56), certC.45, r2.52, cip.47>, pkT.50)
+        z.5   = cert_id(certC.45)
+    
+     5. IDc   = IDc.43
+        certC = cert(x.83, x.84, z.62)
+        certT = certT.46
+        cip   = cip.47
+        pkT   = pkT.50
+        r1    = r1.51
+        r2    = r2.52
+        sC    = sC.53
+        sT    = sT.54
+        z     = cert_id(certT.46)
+        z.1   = verify(cert_sig(certT.46),
+                       <cert_pk(certT.46), cert_id(certT.46), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.84, <x.83, z.62, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.54, <'TA', IDc.43, r1.51>, pkT.50)
+        z.4   = verify(sC.53,
+                       <'CA', certT.46, cert(x.83, x.84, z.62), r2.52, cip.47>, pkT.50)
+        z.5   = z.62
+    
+     6. IDc   = IDc.44
+        certC = cert(x.84, sign(<x.84, z.63, 'chip'>, ca_sk), z.63)
+        certT = cert(x.86, sign(<x.86, z.57, 'terminal'>, ca_sk), z.57)
+        cip   = cip.48
+        pkT   = pkT.51
+        r1    = r1.52
+        r2    = r2.53
+        sC    = sC.54
+        sT    = sT.55
+        z     = z.57
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.55, <'TA', IDc.44, r1.52>, pkT.51)
+        z.4   = verify(sC.54,
+                       <'CA', cert(x.86, sign(<x.86, z.57, 'terminal'>, ca_sk), z.57), 
+                        cert(x.84, sign(<x.84, z.63, 'chip'>, ca_sk), z.63), r2.53, cip.48>,
+                       pkT.51)
+        z.5   = z.63
+    
+     7. IDc   = IDc.45
+        certC = cert(x.85, x.86, z.64)
+        certT = cert(x.88, sign(<x.88, z.58, 'terminal'>, ca_sk), z.58)
+        cip   = cip.49
+        pkT   = pkT.52
+        r1    = r1.53
+        r2    = r2.54
+        sC    = sC.55
+        sT    = sT.56
+        z     = z.58
+        z.1   = true
+        z.2   = verify(x.86, <x.85, z.64, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.56, <'TA', IDc.45, r1.53>, pkT.52)
+        z.4   = verify(sC.55,
+                       <'CA', cert(x.88, sign(<x.88, z.58, 'terminal'>, ca_sk), z.58), 
+                        cert(x.85, x.86, z.64), r2.54, cip.49>,
+                       pkT.52)
+        z.5   = z.64
+    
+     8. IDc   = IDc.45
+        certC = cert(x.85, sign(<x.85, z.64, 'chip'>, ca_sk), z.64)
+        certT = cert(x.87, x.88, z.58)
+        cip   = cip.49
+        pkT   = pkT.52
+        r1    = r1.53
+        r2    = r2.54
+        sC    = sC.55
+        sT    = sT.56
+        z     = z.58
+        z.1   = verify(x.88, <x.87, z.58, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.56, <'TA', IDc.45, r1.53>, pkT.52)
+        z.4   = verify(sC.55,
+                       <'CA', cert(x.87, x.88, z.58), 
+                        cert(x.85, sign(<x.85, z.64, 'chip'>, ca_sk), z.64), r2.54, cip.49>,
+                       pkT.52)
+        z.5   = z.64
+    
+     9. IDc   = IDc.46
+        certC = cert(x.86, x.87, z.65)
+        certT = cert(x.89, x.90, z.59)
+        cip   = cip.50
+        pkT   = pkT.53
+        r1    = r1.54
+        r2    = r2.55
+        sC    = sC.56
+        sT    = sT.57
+        z     = z.59
+        z.1   = verify(x.90, <x.89, z.59, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.87, <x.86, z.65, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.57, <'TA', IDc.46, r1.54>, pkT.53)
+        z.4   = verify(sC.56,
+                       <'CA', cert(x.89, x.90, z.59), cert(x.86, x.87, z.65), r2.55, cip.50>,
+                       pkT.53)
+        z.5   = z.65
+    
+    10. IDc   = IDc.47
+        certC = certC.49
+        certT = certT.50
+        cip   = cip.51
+        pkT   = pk(x.92)
+        r1    = r1.55
+        r2    = r2.56
+        sC    = sign(<'CA', certT.50, certC.49, r2.56, cip.51>, x.92)
+        sT    = sT.58
+        z     = cert_id(certT.50)
+        z.1   = verify(cert_sig(certT.50),
+                       <cert_pk(certT.50), cert_id(certT.50), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.49),
+                       <cert_pk(certC.49), cert_id(certC.49), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.58, <'TA', IDc.47, r1.55>, pk(x.92))
+        z.4   = true
+        z.5   = cert_id(certC.49)
+    
+    11. IDc   = IDc.48
+        certC = certC.50
+        certT = cert(x.89, sign(<x.89, z.61, 'terminal'>, ca_sk), z.61)
+        cip   = cip.52
+        pkT   = pk(x.94)
+        r1    = r1.56
+        r2    = r2.57
+        sC    = sign(<'CA', 
+                      cert(x.89, sign(<x.89, z.61, 'terminal'>, ca_sk), z.61), certC.50, 
+                      r2.57, cip.52>,
+                     x.94)
+        sT    = sT.59
+        z     = z.61
+        z.1   = true
+        z.2   = verify(cert_sig(certC.50),
+                       <cert_pk(certC.50), cert_id(certC.50), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.59, <'TA', IDc.48, r1.56>, pk(x.94))
+        z.4   = true
+        z.5   = cert_id(certC.50)
+    
+    12. IDc   = IDc.48
+        certC = cert(x.88, sign(<x.88, z.67, 'chip'>, ca_sk), z.67)
+        certT = certT.51
+        cip   = cip.52
+        pkT   = pk(x.94)
+        r1    = r1.56
+        r2    = r2.57
+        sC    = sign(<'CA', certT.51, 
+                      cert(x.88, sign(<x.88, z.67, 'chip'>, ca_sk), z.67), r2.57, cip.52>,
+                     x.94)
+        sT    = sT.59
+        z     = cert_id(certT.51)
+        z.1   = verify(cert_sig(certT.51),
+                       <cert_pk(certT.51), cert_id(certT.51), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.59, <'TA', IDc.48, r1.56>, pk(x.94))
+        z.4   = true
+        z.5   = z.67
+    
+    13. IDc   = IDc.49
+        certC = certC.51
+        certT = certT.52
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sC.59
+        sT    = sign(<'TA', IDc.49, r1.57>, x.96)
+        z     = cert_id(certT.52)
+        z.1   = verify(cert_sig(certT.52),
+                       <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.51),
+                       <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.59, <'CA', certT.52, certC.51, r2.58, cip.53>,
+                       pk(x.96))
+        z.5   = cert_id(certC.51)
+    
+    14. IDc   = IDc.49
+        certC = certC.51
+        certT = certT.52
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sign(<'CA', certT.52, certC.51, r2.58, cip.53>, x.96)
+        sT    = sign(<'TA', IDc.49, r1.57>, x.96)
+        z     = cert_id(certT.52)
+        z.1   = verify(cert_sig(certT.52),
+                       <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.51),
+                       <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.51)
+    
+    15. IDc   = IDc.49
+        certC = certC.51
+        certT = cert(x.90, x.91, z.62)
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sign(<'CA', cert(x.90, x.91, z.62), certC.51, r2.58, cip.53>,
+                     x.96)
+        sT    = sT.60
+        z     = z.62
+        z.1   = verify(x.91, <x.90, z.62, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.51),
+                       <cert_pk(certC.51), cert_id(certC.51), 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.60, <'TA', IDc.49, r1.57>, pk(x.96))
+        z.4   = true
+        z.5   = cert_id(certC.51)
+    
+    16. IDc   = IDc.49
+        certC = cert(x.89, x.90, z.68)
+        certT = certT.52
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sign(<'CA', certT.52, cert(x.89, x.90, z.68), r2.58, cip.53>,
+                     x.96)
+        sT    = sT.60
+        z     = cert_id(certT.52)
+        z.1   = verify(cert_sig(certT.52),
+                       <cert_pk(certT.52), cert_id(certT.52), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.90, <x.89, z.68, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.60, <'TA', IDc.49, r1.57>, pk(x.96))
+        z.4   = true
+        z.5   = z.68
+    
+    17. IDc   = IDc.49
+        certC = cert(x.89, sign(<x.89, z.68, 'chip'>, ca_sk), z.68)
+        certT = cert(x.91, sign(<x.91, z.62, 'terminal'>, ca_sk), z.62)
+        cip   = cip.53
+        pkT   = pk(x.96)
+        r1    = r1.57
+        r2    = r2.58
+        sC    = sign(<'CA', 
+                      cert(x.91, sign(<x.91, z.62, 'terminal'>, ca_sk), z.62), 
+                      cert(x.89, sign(<x.89, z.68, 'chip'>, ca_sk), z.68), r2.58, cip.53>,
+                     x.96)
+        sT    = sT.60
+        z     = z.62
+        z.1   = true
+        z.2   = true
+        z.3   = verify(sT.60, <'TA', IDc.49, r1.57>, pk(x.96))
+        z.4   = true
+        z.5   = z.68
+    
+    18. IDc   = IDc.50
+        certC = certC.52
+        certT = cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sC.60
+        sT    = sign(<'TA', IDc.50, r1.58>, x.98)
+        z     = z.63
+        z.1   = true
+        z.2   = verify(cert_sig(certC.52),
+                       <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.60,
+                       <'CA', cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63), 
+                        certC.52, r2.59, cip.54>,
+                       pk(x.98))
+        z.5   = cert_id(certC.52)
+    
+    19. IDc   = IDc.50
+        certC = certC.52
+        certT = cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sign(<'CA', 
+                      cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63), certC.52, 
+                      r2.59, cip.54>,
+                     x.98)
+        sT    = sign(<'TA', IDc.50, r1.58>, x.98)
+        z     = z.63
+        z.1   = true
+        z.2   = verify(cert_sig(certC.52),
+                       <cert_pk(certC.52), cert_id(certC.52), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.52)
+    
+    20. IDc   = IDc.50
+        certC = cert(x.90, x.91, z.69)
+        certT = cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63)
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sign(<'CA', 
+                      cert(x.93, sign(<x.93, z.63, 'terminal'>, ca_sk), z.63), 
+                      cert(x.90, x.91, z.69), r2.59, cip.54>,
+                     x.98)
+        sT    = sT.61
+        z     = z.63
+        z.1   = true
+        z.2   = verify(x.91, <x.90, z.69, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.61, <'TA', IDc.50, r1.58>, pk(x.98))
+        z.4   = true
+        z.5   = z.69
+    
+    21. IDc   = IDc.50
+        certC = cert(x.90, sign(<x.90, z.69, 'chip'>, ca_sk), z.69)
+        certT = cert(x.92, x.93, z.63)
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sign(<'CA', cert(x.92, x.93, z.63), 
+                      cert(x.90, sign(<x.90, z.69, 'chip'>, ca_sk), z.69), r2.59, cip.54>,
+                     x.98)
+        sT    = sT.61
+        z     = z.63
+        z.1   = verify(x.93, <x.92, z.63, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = verify(sT.61, <'TA', IDc.50, r1.58>, pk(x.98))
+        z.4   = true
+        z.5   = z.69
+    
+    22. IDc   = IDc.50
+        certC = cert(x.92, sign(<x.92, z.69, 'chip'>, ca_sk), z.69)
+        certT = certT.53
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sC.60
+        sT    = sign(<'TA', IDc.50, r1.58>, x.98)
+        z     = cert_id(certT.53)
+        z.1   = verify(cert_sig(certT.53),
+                       <cert_pk(certT.53), cert_id(certT.53), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.60,
+                       <'CA', certT.53, cert(x.92, sign(<x.92, z.69, 'chip'>, ca_sk), z.69), 
+                        r2.59, cip.54>,
+                       pk(x.98))
+        z.5   = z.69
+    
+    23. IDc   = IDc.50
+        certC = cert(x.92, sign(<x.92, z.69, 'chip'>, ca_sk), z.69)
+        certT = certT.53
+        cip   = cip.54
+        pkT   = pk(x.98)
+        r1    = r1.58
+        r2    = r2.59
+        sC    = sign(<'CA', certT.53, 
+                      cert(x.92, sign(<x.92, z.69, 'chip'>, ca_sk), z.69), r2.59, cip.54>,
+                     x.98)
+        sT    = sign(<'TA', IDc.50, r1.58>, x.98)
+        z     = cert_id(certT.53)
+        z.1   = verify(cert_sig(certT.53),
+                       <cert_pk(certT.53), cert_id(certT.53), 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.69
+    
+    24. IDc   = IDc.51
+        certC = certC.53
+        certT = cert(x.94, x.95, z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = z.64
+        z.1   = verify(x.95, <x.94, z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.53),
+                       <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.61,
+                       <'CA', cert(x.94, x.95, z.64), certC.53, r2.60, cip.55>, pk(x.100))
+        z.5   = cert_id(certC.53)
+    
+    25. IDc   = IDc.51
+        certC = certC.53
+        certT = cert(x.94, x.95, z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sign(<'CA', cert(x.94, x.95, z.64), certC.53, r2.60, cip.55>,
+                     x.100)
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = z.64
+        z.1   = verify(x.95, <x.94, z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certC.53),
+                       <cert_pk(certC.53), cert_id(certC.53), 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = cert_id(certC.53)
+    
+    26. IDc   = IDc.51
+        certC = cert(x.91, x.92, z.70)
+        certT = cert(x.94, x.95, z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sign(<'CA', cert(x.94, x.95, z.64), cert(x.91, x.92, z.70), 
+                      r2.60, cip.55>,
+                     x.100)
+        sT    = sT.62
+        z     = z.64
+        z.1   = verify(x.95, <x.94, z.64, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.92, <x.91, z.70, 'chip'>, pk(ca_sk))
+        z.3   = verify(sT.62, <'TA', IDc.51, r1.59>, pk(x.100))
+        z.4   = true
+        z.5   = z.70
+    
+    27. IDc   = IDc.51
+        certC = cert(x.93, x.94, z.70)
+        certT = certT.54
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = cert_id(certT.54)
+        z.1   = verify(cert_sig(certT.54),
+                       <cert_pk(certT.54), cert_id(certT.54), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.94, <x.93, z.70, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.61,
+                       <'CA', certT.54, cert(x.93, x.94, z.70), r2.60, cip.55>, pk(x.100))
+        z.5   = z.70
+    
+    28. IDc   = IDc.51
+        certC = cert(x.93, x.94, z.70)
+        certT = certT.54
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sign(<'CA', certT.54, cert(x.93, x.94, z.70), r2.60, cip.55>,
+                     x.100)
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = cert_id(certT.54)
+        z.1   = verify(cert_sig(certT.54),
+                       <cert_pk(certT.54), cert_id(certT.54), 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.94, <x.93, z.70, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.70
+    
+    29. IDc   = IDc.51
+        certC = cert(x.93, sign(<x.93, z.70, 'chip'>, ca_sk), z.70)
+        certT = cert(x.95, sign(<x.95, z.64, 'terminal'>, ca_sk), z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sC.61
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = z.64
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.61,
+                       <'CA', cert(x.95, sign(<x.95, z.64, 'terminal'>, ca_sk), z.64), 
+                        cert(x.93, sign(<x.93, z.70, 'chip'>, ca_sk), z.70), r2.60, cip.55>,
+                       pk(x.100))
+        z.5   = z.70
+    
+    30. IDc   = IDc.51
+        certC = cert(x.93, sign(<x.93, z.70, 'chip'>, ca_sk), z.70)
+        certT = cert(x.95, sign(<x.95, z.64, 'terminal'>, ca_sk), z.64)
+        cip   = cip.55
+        pkT   = pk(x.100)
+        r1    = r1.59
+        r2    = r2.60
+        sC    = sign(<'CA', 
+                      cert(x.95, sign(<x.95, z.64, 'terminal'>, ca_sk), z.64), 
+                      cert(x.93, sign(<x.93, z.70, 'chip'>, ca_sk), z.70), r2.60, cip.55>,
+                     x.100)
+        sT    = sign(<'TA', IDc.51, r1.59>, x.100)
+        z     = z.64
+        z.1   = true
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.70
+    
+    31. IDc   = IDc.52
+        certC = cert(x.94, x.95, z.71)
+        certT = cert(x.97, sign(<x.97, z.65, 'terminal'>, ca_sk), z.65)
+        cip   = cip.56
+        pkT   = pk(x.102)
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sC.62
+        sT    = sign(<'TA', IDc.52, r1.60>, x.102)
+        z     = z.65
+        z.1   = true
+        z.2   = verify(x.95, <x.94, z.71, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.62,
+                       <'CA', cert(x.97, sign(<x.97, z.65, 'terminal'>, ca_sk), z.65), 
+                        cert(x.94, x.95, z.71), r2.61, cip.56>,
+                       pk(x.102))
+        z.5   = z.71
+    
+    32. IDc   = IDc.52
+        certC = cert(x.94, x.95, z.71)
+        certT = cert(x.97, sign(<x.97, z.65, 'terminal'>, ca_sk), z.65)
+        cip   = cip.56
+        pkT   = pk(x.102)
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sign(<'CA', 
+                      cert(x.97, sign(<x.97, z.65, 'terminal'>, ca_sk), z.65), 
+                      cert(x.94, x.95, z.71), r2.61, cip.56>,
+                     x.102)
+        sT    = sign(<'TA', IDc.52, r1.60>, x.102)
+        z     = z.65
+        z.1   = true
+        z.2   = verify(x.95, <x.94, z.71, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.71
+    
+    33. IDc   = IDc.52
+        certC = cert(x.94, sign(<x.94, z.71, 'chip'>, ca_sk), z.71)
+        certT = cert(x.96, x.97, z.65)
+        cip   = cip.56
+        pkT   = pk(x.102)
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sC.62
+        sT    = sign(<'TA', IDc.52, r1.60>, x.102)
+        z     = z.65
+        z.1   = verify(x.97, <x.96, z.65, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = verify(sC.62,
+                       <'CA', cert(x.96, x.97, z.65), 
+                        cert(x.94, sign(<x.94, z.71, 'chip'>, ca_sk), z.71), r2.61, cip.56>,
+                       pk(x.102))
+        z.5   = z.71
+    
+    34. IDc   = IDc.52
+        certC = cert(x.94, sign(<x.94, z.71, 'chip'>, ca_sk), z.71)
+        certT = cert(x.96, x.97, z.65)
+        cip   = cip.56
+        pkT   = pk(x.102)
+        r1    = r1.60
+        r2    = r2.61
+        sC    = sign(<'CA', cert(x.96, x.97, z.65), 
+                      cert(x.94, sign(<x.94, z.71, 'chip'>, ca_sk), z.71), r2.61, cip.56>,
+                     x.102)
+        sT    = sign(<'TA', IDc.52, r1.60>, x.102)
+        z     = z.65
+        z.1   = verify(x.97, <x.96, z.65, 'terminal'>, pk(ca_sk))
+        z.2   = true
+        z.3   = true
+        z.4   = true
+        z.5   = z.71
+    
+    35. IDc   = IDc.53
+        certC = cert(x.95, x.96, z.72)
+        certT = cert(x.98, x.99, z.66)
+        cip   = cip.57
+        pkT   = pk(x.104)
+        r1    = r1.61
+        r2    = r2.62
+        sC    = sC.63
+        sT    = sign(<'TA', IDc.53, r1.61>, x.104)
+        z     = z.66
+        z.1   = verify(x.99, <x.98, z.66, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.96, <x.95, z.72, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = verify(sC.63,
+                       <'CA', cert(x.98, x.99, z.66), cert(x.95, x.96, z.72), r2.62, cip.57>,
+                       pk(x.104))
+        z.5   = z.72
+    
+    36. IDc   = IDc.53
+        certC = cert(x.95, x.96, z.72)
+        certT = cert(x.98, x.99, z.66)
+        cip   = cip.57
+        pkT   = pk(x.104)
+        r1    = r1.61
+        r2    = r2.62
+        sC    = sign(<'CA', cert(x.98, x.99, z.66), cert(x.95, x.96, z.72), 
+                      r2.62, cip.57>,
+                     x.104)
+        sT    = sign(<'TA', IDc.53, r1.61>, x.104)
+        z     = z.66
+        z.1   = verify(x.99, <x.98, z.66, 'terminal'>, pk(ca_sk))
+        z.2   = verify(x.96, <x.95, z.72, 'chip'>, pk(ca_sk))
+        z.3   = true
+        z.4   = true
+        z.5   = z.72
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.3 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk))>,
+                                 ~ltk.1)
+                       ) @ #vk.5 )
+                  case TA_RESPONSE_T
+                  solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.34 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~r2 ) @ #vk.30 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~id_c ) @ #vk.33 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~r1 ) @ #vk.34 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                                 ) @ #vk.20 )
+                            case CA_Sign_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk))>,
+                                            ~k)
+                                   ) @ #vk.24 )
+                              case TA_COMPLETE_C
+                              solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                     ) @ #vk.33 )
+                                case CA_Sign_ltk
+                                solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.21 )
+                                  case TA_RESPONSE_T
+                                  SOLVED // trace found
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case TA_COMPLETE_C
+                solve( TAChallengeC( <$C, iid.1>, cert(pk(x), x.1, $T), id_c.1, r1.1,
+                                     r2.1
+                       ) ▶₁ #i2 )
+                  case TA_CHALLENGE_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( kdf(<'KEY', 
+                                             cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), 
+                                             ~r2.1, cip>,
+                                            z),
+                                        <cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1, 
+                                         cip>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( CAInitT( <$T, iid.3>, id_c.3,
+                                        cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1,
+                                        <z, cip>
+                               ) ▶₁ #j2 )
+                          case TA_RESPONSE_T
+                          solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.3 )
+                              case TA_RESPONSE_T
+                              solve( !KU( sign(<'CA', 
+                                                cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                     $T), 
+                                                cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                                encaps(~k, pk(~ltk))>,
+                                               ~ltk.1)
+                                     ) @ #vk.5 )
+                                case TA_RESPONSE_T
+                                solve( !KU( sign(<'TA', ~id_c.1, ~r1.1>, ~ltk.1) ) @ #vk.40 )
+                                  case TA_RESPONSE_T
+                                  solve( !KU( sign(<'CA', 
+                                                    cert(pk(~ltk.1),
+                                                         sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                                    cert(pk(~skC), sign(<pk(~skC), $C, 'chip'>, ca_sk), $C), 
+                                                    ~r2.1, encaps(~k.1, pk(~skC))>,
+                                                   ~ltk.1)
+                                         ) @ #vk.43 )
+                                    case TA_RESPONSE_T
+                                    solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.54 )
+                                      case CA_Sign_ltk
+                                      solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.60 )
+                                        case CA_Sign_ltk
+                                        solve( !KU( ~r2 ) @ #vk.47 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( ~r2.1 ) @ #vk.55 )
+                                            case TA_CHALLENGE_C
+                                            solve( !KU( ~id_c ) @ #vk.56 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( ~r1 ) @ #vk.57 )
+                                                case TA_CHALLENGE_C
+                                                solve( !KU( ~id_c.1 ) @ #vk.59 )
+                                                  case TA_CHALLENGE_C
+                                                  solve( !KU( ~r1.1 ) @ #vk.60 )
+                                                    case TA_CHALLENGE_C
+                                                    solve( !KU( cert(pk(~skT),
+                                                                     sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                                     $T)
+                                                           ) @ #vk.39 )
+                                                      case CA_Sign_ltk
+                                                      solve( !KU( kdf(<'CNF', 
+                                                                       cert(pk(~skT),
+                                                                            sign(<pk(~skT), $T, 'terminal'>,
+                                                                                 ca_sk),
+                                                                            $T), 
+                                                                       cert(pk(~ltk),
+                                                                            sign(<pk(~ltk), $C, 'chip'>,
+                                                                                 ca_sk),
+                                                                            $C), 
+                                                                       ~r2, encaps(~k, pk(~ltk))>,
+                                                                      ~k)
+                                                             ) @ #vk.42 )
+                                                        case TA_COMPLETE_C
+                                                        solve( !KU( cert(pk(~ltk),
+                                                                         sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                                         $C)
+                                                               ) @ #vk.52 )
+                                                          case CA_Sign_ltk
+                                                          solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.37 )
+                                                            case TA_RESPONSE_T
+                                                            solve( !KU( cert(pk(~ltk.1),
+                                                                             sign(<pk(~ltk.1), $T, 'terminal'
+                                                                                  >,
+                                                                                  ca_sk),
+                                                                             $T)
+                                                                   ) @ #vk.55 )
+                                                              case CA_Sign_ltk
+                                                              solve( !KU( kdf(<'CNF', 
+                                                                               cert(pk(~ltk.1),
+                                                                                    sign(<pk(~ltk.1), $T, 
+                                                                                          'terminal'>,
+                                                                                         ca_sk),
+                                                                                    $T), 
+                                                                               cert(pk(~skC),
+                                                                                    sign(<pk(~skC), $C, 'chip'
+                                                                                         >,
+                                                                                         ca_sk),
+                                                                                    $C), 
+                                                                               ~r2.1, encaps(~k.1, pk(~skC))>,
+                                                                              ~k.1)
+                                                                     ) @ #vk.56 )
+                                                                case TA_COMPLETE_C
+                                                                solve( !KU( cert(pk(~skC),
+                                                                                 sign(<pk(~skC), $C, 'chip'>,
+                                                                                      ca_sk),
+                                                                                 $C)
+                                                                       ) @ #vk.59 )
+                                                                  case CA_Sign_ltk
+                                                                  solve( !KU( encaps(~k.1, pk(~skC))
+                                                                         ) @ #vk.57 )
+                                                                    case TA_RESPONSE_T
+                                                                    SOLVED // trace found
+                                                                  qed
+                                                                qed
+                                                              qed
+                                                            qed
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                        ~k)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.18 )
+            case TA_RESPONSE_T
+            solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                   ) @ #vk.13 )
+              case CA_Sign_ltk
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case TA_CHALLENGE_C
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case c_cert
+              solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.25 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_sign
+                by solve( !KU( ca_sk ) @ #vk.29 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              by contradiction /* from formulas */
+            next
+              case split_case_2
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.18 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk))>,
+                                 ~ltk.1)
+                       ) @ #vk.21 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'CNF', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  ~k)
+                         ) @ #vk.4 )
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.40 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ltk ) @ #vk.42 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.40 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.29 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                        ~k)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.18 )
+            case TA_RESPONSE_T
+            solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                   ) @ #vk.13 )
+              case CA_Sign_ltk
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case TA_CHALLENGE_C
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case c_cert
+              solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.25 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_sign
+                by solve( !KU( ca_sk ) @ #vk.29 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c,
+                      cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !KU( kdf(<'CNF', 
+                         cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                         cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                        ~k)
+               ) @ #vk.1 )
+          case TA_COMPLETE_C
+          by contradiction /* from formulas */
+        next
+          case c_kdf
+          solve( !KU( ~k ) @ #vk.18 )
+            case TA_RESPONSE_T
+            solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                   ) @ #vk.13 )
+              case CA_Sign_ltk
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case TA_CHALLENGE_C
+              solve( !KU( ~ltk.1 ) @ #vk.23 )
+                case Corrupt_ltk
+                by contradiction /* from formulas */
+              qed
+            next
+              case c_cert
+              solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.25 )
+                case CA_Sign_ltk
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.24 )
+                  case Corrupt_ltk
+                  by contradiction /* from formulas */
+                qed
+              next
+                case c_sign
+                by solve( !KU( ca_sk ) @ #vk.29 )
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      by contradiction /* from formulas */
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                                ~k),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                                ~k),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C
+      solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_T
+    solve( CAInitT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+      case TA_RESPONSE_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                               cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                              ~k),
+                          sid2, $T, 'terminal', B
+               ) @ #j )
+          case CA_FINISH_T
+          by contradiction /* from formulas */
+        qed
+      qed
+    qed
+  next
+    case TA_COMPLETE_C
+    solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, B), id_c, r1, r2
+           ) ▶₁ #i )
+      case TA_CHALLENGE_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(x), sign(<pk(x), B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                z),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.3 )
+                  case TA_RESPONSE_T
+                  solve( !KU( sign(<'CA', 
+                                    cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                    encaps(~k, pk(~ltk))>,
+                                   ~ltk.1)
+                         ) @ #vk.5 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.14 )
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.40 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.42 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( ~ltk.1 ) @ #vk.40 )
+                      case Corrupt_ltk
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk))>,
+                                      ~k)
+                             ) @ #vk.19 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.43 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.45 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.29 )
+                    case Corrupt_ltk
+                    solve( !KU( sign(<'CA', 
+                                      cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                      cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                      encaps(~k, pk(~ltk))>,
+                                     ~ltk.1)
+                           ) @ #vk.6 )
+                      case TA_RESPONSE_T
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk))>,
+                                      ~k)
+                             ) @ #vk.15 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.38 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.40 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    next
+                      case c_sign
+                      solve( !KU( kdf(<'CNF', 
+                                       cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                       cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                       encaps(~k, pk(~ltk))>,
+                                      ~k)
+                             ) @ #vk.17 )
+                        case c_kdf
+                        solve( !KU( ~k ) @ #vk.40 )
+                          case TA_RESPONSE_T
+                          solve( !KU( ~ltk ) @ #vk.42 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.4 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk))>,
+                                 ~ltk.1)
+                       ) @ #vk.6 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'KEY', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  ~k)
+                         ) @ #vk.3 )
+                    case Reveal_session
+                    by contradiction /* from formulas */
+                  next
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.41 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ltk ) @ #vk.43 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                next
+                  case c_sign
+                  solve( !KU( ~ltk.1 ) @ #vk.41 )
+                    case Corrupt_ltk
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.6 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.44 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.46 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case c_sign
+                solve( !KU( ~ltk.1 ) @ #vk.30 )
+                  case Corrupt_ltk
+                  solve( !KU( sign(<'CA', 
+                                    cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                    encaps(~k, pk(~ltk))>,
+                                   ~ltk.1)
+                         ) @ #vk.7 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.39 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.41 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_sign
+                    solve( !KU( kdf(<'KEY', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.5 )
+                      case Reveal_session
+                      by contradiction /* from formulas */
+                    next
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.41 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~ltk ) @ #vk.43 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+       ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+      case CA_Sign_ltk
+      solve( splitEqs(0) )
+        case split_case_1
+        solve( !KU( sign(<'TA', ~id_c, ~r1>, x) ) @ #vk.3 )
+          case TA_RESPONSE_T
+          solve( !KU( sign(<'CA', 
+                            cert(pk(~skT), sign(<pk(~skT), T, 'terminal'>, ca_sk), T), 
+                            cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                           ~skT)
+                 ) @ #vk.5 )
+            case TA_RESPONSE_T
+            solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.19 )
+              case CA_Sign_ltk
+              solve( !KU( ~iid ) @ #vk.12 )
+                case TA_CHALLENGE_C
+                solve( !KU( ~id_c ) @ #vk.17 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~r1 ) @ #vk.19 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~r2 ) @ #vk.32 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                             ) @ #vk.19 )
+                        case CA_Sign_ltk
+                        solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                               ) @ #vk.32 )
+                          case CA_Sign_ltk
+                          solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.18 )
+                            case TA_RESPONSE_T
+                            SOLVED // trace found
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₁ #i )
+    case Generate_chip_key_pair
+    solve( splitEqs(0) )
+      case split_case_2
+      solve( !KU( sign(<'CA', 
+                        cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                        cert(x.1, sign(<x.1, $A, 'chip'>, ca_sk), $A), r2, encaps(z, pk(~ltk))>,
+                       x)
+             ) @ #vk.15 )
+        case c_sign
+        solve( !KU( cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T)
+               ) @ #vk.2 )
+          case CA_Sign_ltk
+          solve( !KU( ~ltk ) @ #vk.21 )
+            case Corrupt_ltk
+            solve( !KU( sign(<'TA', IDc, r1>, ~ltk) ) @ #vk.13 )
+              case c_sign
+              solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.17 )
+                case CA_Sign_ltk
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $A.1, 'chip'>, ca_sk), $A.1), r2, 
+                                 encaps(z, pk(~ltk.2))>,
+                                z)
+                       ) @ #vk.23 )
+                  case c_kdf
+                  solve( !KU( encaps(z, pk(~ltk.2)) ) @ #vk.24 )
+                    case c_encaps
+                    solve( !KU( pk(~ltk.2) ) @ #vk.29 )
+                      case CA_Sign_ltk
+                      SOLVED // trace found
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !Pk( T, pk(x.1), 'terminal' ) ▶₂ #i )
+    case Generate_terminal_key_pair
+    solve( !KU( sign(<'TA', IDc, r1>, ~ltk) ) @ #vk.7 )
+      case TA_RESPONSE_T
+      by contradiction /* from formulas */
+    next
+      case c_sign
+      solve( !KU( ~ltk ) @ #vk.20 )
+        case Corrupt_ltk
+        by contradiction /* from formulas */
+      qed
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C
+  solve( TAChallengeC( <$C, iid>, cert(pk(x), x.1, T), id_c, r1, r2
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z),
+                          <cert(pk(x), sign(<pk(x), T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(pk(x), sign(<pk(x), $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( !KU( sign(<'TA', ~id_c, ~r1>, ~ltk.1) ) @ #vk.4 )
+                case TA_RESPONSE_T
+                solve( !KU( sign(<'CA', 
+                                  cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                  cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                  encaps(~k, pk(~ltk))>,
+                                 ~ltk.1)
+                       ) @ #vk.6 )
+                  case TA_RESPONSE_T
+                  solve( !KU( kdf(<'KEY', 
+                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  ~k)
+                         ) @ #vk.3 )
+                    case c_kdf
+                    solve( !KU( ~k ) @ #vk.41 )
+                      case TA_RESPONSE_T
+                      solve( !KU( ~ltk ) @ #vk.43 )
+                        case Corrupt_ltk
+                        solve( !KU( cert(z, sign(<z, x, 'chip'>, ca_sk), x) ) @ #vk.41 )
+                          case CA_Sign_ltk
+                          solve( !KU( ~r2 ) @ #vk.38 )
+                            case TA_CHALLENGE_C
+                            solve( !KU( ~id_c ) @ #vk.40 )
+                              case TA_CHALLENGE_C
+                              solve( !KU( ~r1 ) @ #vk.41 )
+                                case TA_CHALLENGE_C
+                                solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                                       ) @ #vk.27 )
+                                  case CA_Sign_ltk
+                                  solve( !KU( kdf(<'CNF', 
+                                                   cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                        $T), 
+                                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                   ~r2, encaps(~k, pk(~ltk))>,
+                                                  ~k)
+                                         ) @ #vk.31 )
+                                    case TA_COMPLETE_C
+                                    solve( !KU( cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                           ) @ #vk.40 )
+                                      case CA_Sign_ltk
+                                      solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.28 )
+                                        case TA_RESPONSE_T
+                                        SOLVED // trace found
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 750.72s
+  
+  session_exist (exists-trace): verified (19 steps)
+  two_session_exist (exists-trace): verified (36 steps)
+  weak_agreement_C (all-traces): verified (8 steps)
+  weak_agreement_T (all-traces): verified (19 steps)
+  agreement_C (all-traces): verified (19 steps)
+  agreement_T (all-traces): verified (19 steps)
+  aliveness (all-traces): verified (20 steps)
+  session_uniqueness (all-traces): verified (37 steps)
+  consistency (all-traces): verified (31 steps)
+  key_secrecy (all-traces): verified (33 steps)
+  chip_hiding (all-traces): falsified - found trace (16 steps)
+  nonRepudiation_terminal (exists-trace): verified (13 steps)
+  nonRepudiation_chip (exists-trace): falsified - no trace found (7 steps)
+  pfs (all-traces): falsified - found trace (22 steps)
+
+==============================================================================
diff --git a/results/Basic/session_exist.err.45215033 b/results/45991793.err.ALL_KemPQEAC_TAMARIN
similarity index 86%
rename from results/Basic/session_exist.err.45215033
rename to results/45991793.err.ALL_KemPQEAC_TAMARIN
index 1f61aae55c21ecd2bc906c49f8eb899cc6d49e2d..35cf59a4de87742e8526e575ef29d8946ab1831a 100644
--- a/results/Basic/session_exist.err.45215033
+++ b/results/45991793.err.ALL_KemPQEAC_TAMARIN
@@ -30,3 +30,5 @@
 [Saturating Sources] Step 2/5
 [Saturating Sources] Step 1/5
 [Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991793.out.ALL_KemPQEAC_TAMARIN b/results/45991793.out.ALL_KemPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..fcb4fe90e83adeca286d1eacde9254d1a2103d69
--- /dev/null
+++ b/results/45991793.out.ALL_KemPQEAC_TAMARIN
@@ -0,0 +1,3595 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory KemPQEAC begin
+
+// Function signature and definition of the equational theory E
+
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, decaps/2, encaps/2, fst/1, kdf/2, mac/2, pair/2, pk/1,
+           sdec/2, senc/2, sign/2, snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    decaps(encaps(k, pk(sk)), sk) = k,
+    fst(<x.1, x.2>) = x.1,
+    sdec(senc(x.1, x.2), x.2) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [ !Pk( $A, pk(~ltk), 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [ Out( <certT, '1', 't'> ), Out( ~iid ), TAInitT( <$T, ~iid> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [ In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~kTA ), Fr( ~iid )
+   ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, encaps(~kTA, cert_pk(certT)), '2', 'c'> ),
+   TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1,
+                 <~kTA, encaps(~kTA, cert_pk(certT))>
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [ In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~kTA ), Fr( ~iid )
+     ]
+    --[ Eq( z.1, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, encaps(~kTA, z), '2', 'c'> ),
+     TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, <~kTA, encaps(~kTA, z)> )
+     ]
+    variants (modulo AC)
+    1. certT = certT.14
+       z     = cert_pk(certT.14)
+       z.1   = verify(cert_sig(certT.14),
+                      <cert_pk(certT.14), cert_id(certT.14), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(z.27, sign(<z.27, x.44, 'terminal'>, ca_sk), x.44)
+       z     = z.27
+       z.1   = true
+    
+    3. certT = cert(z.28, x.45, x.46)
+       z     = z.28
+       z.1   = verify(x.45, <z.28, x.46, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, cTA, '2', 'c'> ), TAInitT( <$T, iid> ),
+   !Ltk( $T, ~skT, 'terminal' )
+   ]
+  -->
+   [
+   Out( <kdf(<'TCNF', r1>, decaps(cTA, ~skT)), '3', 't'> ),
+   TAResponseT( <$T, iid>, id_c, kdf(<'TMAC', r1>, decaps(cTA, ~skT)),
+                kdf(<'TENC', r1>, decaps(cTA, ~skT))
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_RESPONSE_T:
+     [
+     In( <id_c, r1, cTA, '2', 'c'> ), TAInitT( <$T, iid> ),
+     !Ltk( $T, ~skT, 'terminal' )
+     ]
+    -->
+     [
+     Out( <kdf(<'TCNF', r1>, z), '3', 't'> ),
+     TAResponseT( <$T, iid>, id_c, kdf(<'TMAC', r1>, z), kdf(<'TENC', r1>, z)
+     )
+     ]
+    variants (modulo AC)
+    1. ~skT  = ~skT.14
+       cTA   = cTA.15
+       z     = decaps(cTA.15, ~skT.14)
+    
+    2. ~skT  = ~skT.22
+       cTA   = encaps(z.31, pk(~skT.22))
+       z     = z.31
+  */
+
+rule (modulo E) TA_COMPLETE_C:
+   [
+   In( <kTCNF_T, '3', 't'> ),
+   TAChallengeC( <$C, iid>, certT, id_c, r1, <kTA, cTA> )
+   ]
+  --[
+  Eq( kTCNF_T, kdf(<'TCNF', r1>, kTA) ),
+  CompletedTA( $C, iid, cert_id(certT) )
+  ]->
+   [
+   TACompleteC( <$C, iid>, certT, id_c, r1, <kTA, cTA>,
+                kdf(<'TMAC', r1>, kTA), kdf(<'TENC', r1>, kTA)
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [
+     In( <kTCNF_T, '3', 't'> ),
+     TAChallengeC( <$C, iid>, certT, id_c, r1, <kTA, cTA> )
+     ]
+    --[ Eq( kTCNF_T, kdf(<'TCNF', r1>, kTA) ), CompletedTA( $C, iid, z ) ]->
+     [
+     TACompleteC( <$C, iid>, certT, id_c, r1, <kTA, cTA>,
+                  kdf(<'TMAC', r1>, kTA), kdf(<'TENC', r1>, kTA)
+     )
+     ]
+    variants (modulo AC)
+    1. certT = certT.16
+       z     = cert_id(certT.16)
+    
+    2. certT = cert(x.26, x.27, z.21)
+       z     = z.21
+  */
+
+rule (modulo E) CA_INIT_C:
+   [
+   !Cert( $C, certC, 'chip' ), Fr( ~r2 ),
+   TACompleteC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC )
+   ]
+  -->
+   [
+   Out( <senc(<certC, ~r2>, kTENC), '4', 'c'> ), Out( senc(iid, kTENC) ),
+   CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, ~r2 )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_INIT_T:
+   [
+   In( <cCA, 'CA_INIT', '4', 'c'> ),
+   TAResponseT( <$T, iid>, id_c, kTMAC, kTENC ),
+   !Cert( $T, certT, 'terminal' ), Fr( ~k )
+   ]
+  --[ Eq( verify_cert(fst(sdec(cCA, kTENC)), 'chip'), true ) ]->
+   [
+   Out( <encaps(~k, cert_pk(fst(sdec(cCA, kTENC)))), 
+         mac(<'CA', certT, fst(sdec(cCA, kTENC)), snd(sdec(cCA, kTENC)), 
+              encaps(~k, cert_pk(fst(sdec(cCA, kTENC))))>,
+             kTMAC), 
+         '5', 't'>
+   ),
+   CAInitT( <$T, iid>, id_c, kTMAC, kTENC, fst(sdec(cCA, kTENC)),
+            snd(sdec(cCA, kTENC)), <~k, encaps(~k, cert_pk(fst(sdec(cCA, kTENC))))>
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_INIT_T:
+     [
+     In( <cCA, 'CA_INIT', '4', 'c'> ),
+     TAResponseT( <$T, iid>, id_c, kTMAC, kTENC ),
+     !Cert( $T, certT, 'terminal' ), Fr( ~k )
+     ]
+    --[ Eq( z.3, true ) ]->
+     [
+     Out( <encaps(~k, z), mac(<'CA', certT, z.1, z.2, encaps(~k, z)>, kTMAC), 
+           '5', 't'>
+     ),
+     CAInitT( <$T, iid>, id_c, kTMAC, kTENC, z.1, z.2, <~k, encaps(~k, z)> )
+     ]
+    variants (modulo AC)
+    1. cCA   = cCA.25
+       kTENC = kTENC.29
+       z     = cert_pk(fst(sdec(cCA.25, kTENC.29)))
+       z.1   = fst(sdec(cCA.25, kTENC.29))
+       z.2   = snd(sdec(cCA.25, kTENC.29))
+       z.3   = verify(cert_sig(fst(sdec(cCA.25, kTENC.29))),
+                      <cert_pk(fst(sdec(cCA.25, kTENC.29))), 
+                       cert_id(fst(sdec(cCA.25, kTENC.29))), 'chip'>,
+                      pk(ca_sk))
+    
+    2. cCA   = senc(x.190, kTENC.99)
+       kTENC = kTENC.99
+       z     = cert_pk(fst(x.190))
+       z.1   = fst(x.190)
+       z.2   = snd(x.190)
+       z.3   = verify(cert_sig(fst(x.190)),
+                      <cert_pk(fst(x.190)), cert_id(fst(x.190)), 'chip'>, pk(ca_sk))
+    
+    3. cCA   = senc(<z.38, z.39>, kTENC.30)
+       kTENC = kTENC.30
+       z     = cert_pk(z.38)
+       z.1   = z.38
+       z.2   = z.39
+       z.3   = verify(cert_sig(z.38), <cert_pk(z.38), cert_id(z.38), 'chip'>,
+                      pk(ca_sk))
+    
+    4. cCA   = senc(<
+                     cert(z.106, sign(<z.106, x.192, 'chip'>, ca_sk), x.192), z.109>,
+                    kTENC.100)
+       kTENC = kTENC.100
+       z     = z.106
+       z.1   = cert(z.106, sign(<z.106, x.192, 'chip'>, ca_sk), x.192)
+       z.2   = z.109
+       z.3   = true
+    
+    5. cCA   = senc(<cert(z.107, x.193, x.194), z.110>, kTENC.101)
+       kTENC = kTENC.101
+       z     = z.107
+       z.1   = cert(z.107, x.193, x.194)
+       z.2   = z.110
+       z.3   = verify(x.193, <z.107, x.194, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) CA_FINISH_C:
+   [
+   In( <cip, s, '5', 't'> ),
+   CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2 ),
+   !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( s, mac(<'CA', certT, certC, r2, cip>, kTMAC) ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, decaps(cip, ~skC)),
+             <certT, certC, r2, cip>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <kdf(<'CNF', certT, certC, r2, cip>, decaps(cip, ~skC)), '6', 'c'>
+   ),
+   CAFinishC( $C, cert_id(certT),
+              kdf(<'KEY', certT, certC, r2, cip>, decaps(cip, ~skC))
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_C:
+     [
+     In( <cip, s, '5', 't'> ),
+     CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2 ),
+     !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( s, mac(<'CA', certT, certC, r2, cip>, kTMAC) ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, z),
+               <certT, certC, r2, cip>, $C, 'chip', z.1
+    )
+    ]->
+     [
+     Out( <kdf(<'CNF', certT, certC, r2, cip>, z), '6', 'c'> ),
+     CAFinishC( $C, z.1, kdf(<'KEY', certT, certC, r2, cip>, z) )
+     ]
+    variants (modulo AC)
+    1. ~skC  = ~skC.28
+       certT = certT.31
+       cip   = cip.32
+       z     = decaps(cip.32, ~skC.28)
+       z.1   = cert_id(certT.31)
+    
+    2. ~skC  = ~skC.41
+       certT = certT.44
+       cip   = encaps(z.58, pk(~skC.41))
+       z     = z.58
+       z.1   = cert_id(certT.44)
+    
+    3. ~skC  = ~skC.186
+       certT = cert(x.368, x.369, z.206)
+       cip   = cip.190
+       z     = decaps(cip.190, ~skC.186)
+       z.1   = z.206
+    
+    4. ~skC  = ~skC.189
+       certT = cert(x.374, x.375, z.209)
+       cip   = encaps(z.206, pk(~skC.189))
+       z     = z.206
+       z.1   = z.209
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <kCNF_c, '6', 'c'> ),
+   CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip> ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( kdf(<'CNF', certT, certC, r2, cip>, k), kCNF_c ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, k),
+             <certT, certC, r2, cip>, $T, 'terminal', cert_id(certC)
+  ),
+  Finished( <certT, certC, r2, cip> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T, kdf(<'KEY', certT, certC, r2, cip>, k) ),
+   !SessionReveal( <certT, certC, r2, cip>,
+                   kdf(<'KEY', certT, certC, r2, cip>, k)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <kCNF_c, '6', 'c'> ),
+     CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip> ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( kdf(<'CNF', certT, certC, r2, cip>, k), kCNF_c ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, k),
+               <certT, certC, r2, cip>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, r2, cip> )
+    ]->
+     [
+     CAFinishT( z, $T, kdf(<'KEY', certT, certC, r2, cip>, k) ),
+     !SessionReveal( <certT, certC, r2, cip>,
+                     kdf(<'KEY', certT, certC, r2, cip>, k)
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.17
+       z     = cert_id(certC.17)
+    
+    2. certC = cert(x.43, x.44, z.30)
+       z     = z.30
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, kCNF> ), In( kTA ),
+   !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(fst(sdec(cCA, kdf(<'TENC', r1>, kTA)))) ),
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 'chip'), true ),
+  Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( kTCNF, kdf(<'TCNF', r1>, kTA) ),
+  Eq( s,
+      mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, kTA))), cip>,
+          kdf(<'TMAC', r1>, kTA))
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, kTA))), cip>,
+          decaps(cip, skC))
+  ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, kCNF> ), In( kTA ),
+     !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( z.1, true ), Eq( z.2, true ),
+    Eq( kTCNF, kdf(<'TCNF', r1>, kTA) ),
+    Eq( s, mac(<'CA', certT, z.3, z.4, cip>, kdf(<'TMAC', r1>, kTA)) ),
+    Eq( kCNF, kdf(<'CNF', certT, z.3, z.4, cip>, z.5) ),
+    ValidTrans( C, 'chip', z.6 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. cCA   = cCA.35
+        certT = certT.37
+        cip   = cip.38
+        kTA   = kTA.40
+        r1    = r1.42
+        skC   = skC.44
+        z     = cert_id(fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))),
+                       <cert_pk(fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))), 
+                        cert_id(fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.37),
+                       <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))
+        z.4   = snd(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))
+        z.5   = decaps(cip.38, skC.44)
+        z.6   = cert_id(certT.37)
+    
+     2. cCA   = cCA.46
+        certT = certT.48
+        cip   = encaps(z.66, pk(skC.55))
+        kTA   = kTA.51
+        r1    = r1.53
+        skC   = skC.55
+        z     = cert_id(fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))),
+                       <cert_pk(fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))), 
+                        cert_id(fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.48),
+                       <cert_pk(certT.48), cert_id(certT.48), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))
+        z.4   = snd(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))
+        z.5   = z.66
+        z.6   = cert_id(certT.48)
+    
+     3. cCA   = cCA.114
+        certT = cert(x.224, sign(<x.224, z.135, 'terminal'>, ca_sk), z.135)
+        cip   = cip.117
+        kTA   = kTA.119
+        r1    = r1.121
+        skC   = skC.123
+        z     = cert_id(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, kTA.119)))),
+                       <cert_pk(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))), 
+                        cert_id(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))
+        z.4   = snd(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))
+        z.5   = decaps(cip.117, skC.123)
+        z.6   = z.135
+    
+     4. cCA   = cCA.114
+        certT = cert(x.224, sign(<x.224, z.135, 'terminal'>, ca_sk), z.135)
+        cip   = encaps(z.134, pk(skC.123))
+        kTA   = kTA.119
+        r1    = r1.121
+        skC   = skC.123
+        z     = cert_id(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, kTA.119)))),
+                       <cert_pk(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))), 
+                        cert_id(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))
+        z.4   = snd(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))
+        z.5   = z.134
+        z.6   = z.135
+    
+     5. cCA   = cCA.115
+        certT = cert(x.225, x.226, z.136)
+        cip   = cip.118
+        kTA   = kTA.120
+        r1    = r1.122
+        skC   = skC.124
+        z     = cert_id(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, kTA.120)))),
+                       <cert_pk(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))), 
+                        cert_id(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.226, <x.225, z.136, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))
+        z.4   = snd(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))
+        z.5   = decaps(cip.118, skC.124)
+        z.6   = z.136
+    
+     6. cCA   = cCA.115
+        certT = cert(x.225, x.226, z.136)
+        cip   = encaps(z.135, pk(skC.124))
+        kTA   = kTA.120
+        r1    = r1.122
+        skC   = skC.124
+        z     = cert_id(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, kTA.120)))),
+                       <cert_pk(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))), 
+                        cert_id(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.226, <x.225, z.136, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))
+        z.4   = snd(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))
+        z.5   = z.135
+        z.6   = z.136
+    
+     7. cCA   = senc(x.183, kdf(<'TENC', r1.100>, kTA.98))
+        certT = cert(x.187, sign(<x.187, z.114, 'terminal'>, ca_sk), z.114)
+        cip   = encaps(z.113, pk(skC.102))
+        kTA   = kTA.98
+        r1    = r1.100
+        skC   = skC.102
+        z     = cert_id(fst(x.183))
+        z.1   = verify(cert_sig(fst(x.183)),
+                       <cert_pk(fst(x.183)), cert_id(fst(x.183)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.183)
+        z.4   = snd(x.183)
+        z.5   = z.113
+        z.6   = z.114
+    
+     8. cCA   = senc(x.184, kdf(<'TENC', r1.101>, kTA.99))
+        certT = cert(x.188, x.189, z.115)
+        cip   = encaps(z.114, pk(skC.103))
+        kTA   = kTA.99
+        r1    = r1.101
+        skC   = skC.103
+        z     = cert_id(fst(x.184))
+        z.1   = verify(cert_sig(fst(x.184)),
+                       <cert_pk(fst(x.184)), cert_id(fst(x.184)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.189, <x.188, z.115, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.184)
+        z.4   = snd(x.184)
+        z.5   = z.114
+        z.6   = z.115
+    
+     9. cCA   = senc(x.201, kdf(<'TENC', r1.110>, kTA.108))
+        certT = cert(x.205, sign(<x.205, z.124, 'terminal'>, ca_sk), z.124)
+        cip   = cip.106
+        kTA   = kTA.108
+        r1    = r1.110
+        skC   = skC.112
+        z     = cert_id(fst(x.201))
+        z.1   = verify(cert_sig(fst(x.201)),
+                       <cert_pk(fst(x.201)), cert_id(fst(x.201)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.201)
+        z.4   = snd(x.201)
+        z.5   = decaps(cip.106, skC.112)
+        z.6   = z.124
+    
+    10. cCA   = senc(x.202, kdf(<'TENC', r1.111>, kTA.109))
+        certT = cert(x.206, x.207, z.125)
+        cip   = cip.107
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = cert_id(fst(x.202))
+        z.1   = verify(cert_sig(fst(x.202)),
+                       <cert_pk(fst(x.202)), cert_id(fst(x.202)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.207, <x.206, z.125, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.202)
+        z.4   = snd(x.202)
+        z.5   = decaps(cip.107, skC.113)
+        z.6   = z.125
+    
+    11. cCA   = senc(x.206, kdf(<'TENC', r1.111>, kTA.109))
+        certT = certT.106
+        cip   = cip.107
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = cert_id(fst(x.206))
+        z.1   = verify(cert_sig(fst(x.206)),
+                       <cert_pk(fst(x.206)), cert_id(fst(x.206)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.206)
+        z.4   = snd(x.206)
+        z.5   = decaps(cip.107, skC.113)
+        z.6   = cert_id(certT.106)
+    
+    12. cCA   = senc(x.206, kdf(<'TENC', r1.111>, kTA.109))
+        certT = certT.106
+        cip   = encaps(z.124, pk(skC.113))
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = cert_id(fst(x.206))
+        z.1   = verify(cert_sig(fst(x.206)),
+                       <cert_pk(fst(x.206)), cert_id(fst(x.206)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.206)
+        z.4   = snd(x.206)
+        z.5   = z.124
+        z.6   = cert_id(certT.106)
+    
+    13. cCA   = senc(<z.55, z.56>, kdf(<'TENC', r1.46>, kTA.44))
+        certT = certT.41
+        cip   = cip.42
+        kTA   = kTA.44
+        r1    = r1.46
+        skC   = skC.48
+        z     = cert_id(z.55)
+        z.1   = verify(cert_sig(z.55), <cert_pk(z.55), cert_id(z.55), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.41),
+                       <cert_pk(certT.41), cert_id(certT.41), 'terminal'>, pk(ca_sk))
+        z.3   = z.55
+        z.4   = z.56
+        z.5   = decaps(cip.42, skC.48)
+        z.6   = cert_id(certT.41)
+    
+    14. cCA   = senc(<z.58, z.59>, kdf(<'TENC', r1.49>, kTA.47))
+        certT = certT.44
+        cip   = encaps(z.62, pk(skC.51))
+        kTA   = kTA.47
+        r1    = r1.49
+        skC   = skC.51
+        z     = cert_id(z.58)
+        z.1   = verify(cert_sig(z.58), <cert_pk(z.58), cert_id(z.58), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.44),
+                       <cert_pk(certT.44), cert_id(certT.44), 'terminal'>, pk(ca_sk))
+        z.3   = z.58
+        z.4   = z.59
+        z.5   = z.62
+        z.6   = cert_id(certT.44)
+    
+    15. cCA   = senc(<z.110, z.111>, kdf(<'TENC', r1.101>, kTA.99))
+        certT = cert(x.189, sign(<x.189, z.115, 'terminal'>, ca_sk), z.115)
+        cip   = encaps(z.114, pk(skC.103))
+        kTA   = kTA.99
+        r1    = r1.101
+        skC   = skC.103
+        z     = cert_id(z.110)
+        z.1   = verify(cert_sig(z.110), <cert_pk(z.110), cert_id(z.110), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.110
+        z.4   = z.111
+        z.5   = z.114
+        z.6   = z.115
+    
+    16. cCA   = senc(<z.111, z.112>, kdf(<'TENC', r1.102>, kTA.100))
+        certT = cert(x.190, x.191, z.116)
+        cip   = encaps(z.115, pk(skC.104))
+        kTA   = kTA.100
+        r1    = r1.102
+        skC   = skC.104
+        z     = cert_id(z.111)
+        z.1   = verify(cert_sig(z.111), <cert_pk(z.111), cert_id(z.111), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.191, <x.190, z.116, 'terminal'>, pk(ca_sk))
+        z.3   = z.111
+        z.4   = z.112
+        z.5   = z.115
+        z.6   = z.116
+    
+    17. cCA   = senc(<z.120, z.121>, kdf(<'TENC', r1.111>, kTA.109))
+        certT = cert(x.207, sign(<x.207, z.125, 'terminal'>, ca_sk), z.125)
+        cip   = cip.107
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = cert_id(z.120)
+        z.1   = verify(cert_sig(z.120), <cert_pk(z.120), cert_id(z.120), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.120
+        z.4   = z.121
+        z.5   = decaps(cip.107, skC.113)
+        z.6   = z.125
+    
+    18. cCA   = senc(<z.121, z.122>, kdf(<'TENC', r1.112>, kTA.110))
+        certT = cert(x.208, x.209, z.126)
+        cip   = cip.108
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        z     = cert_id(z.121)
+        z.1   = verify(cert_sig(z.121), <cert_pk(z.121), cert_id(z.121), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.209, <x.208, z.126, 'terminal'>, pk(ca_sk))
+        z.3   = z.121
+        z.4   = z.122
+        z.5   = decaps(cip.108, skC.114)
+        z.6   = z.126
+    
+    19. cCA   = senc(<
+                      cert(x.185, sign(<x.185, z.106, 'chip'>, ca_sk), z.106), z.112>,
+                     kdf(<'TENC', r1.102>, kTA.100))
+        certT = cert(x.191, sign(<x.191, z.116, 'terminal'>, ca_sk), z.116)
+        cip   = encaps(z.115, pk(skC.104))
+        kTA   = kTA.100
+        r1    = r1.102
+        skC   = skC.104
+        z     = z.106
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.185, sign(<x.185, z.106, 'chip'>, ca_sk), z.106)
+        z.4   = z.112
+        z.5   = z.115
+        z.6   = z.116
+    
+    20. cCA   = senc(<cert(x.186, x.187, z.107), z.113>,
+                     kdf(<'TENC', r1.103>, kTA.101))
+        certT = cert(x.193, sign(<x.193, z.117, 'terminal'>, ca_sk), z.117)
+        cip   = encaps(z.116, pk(skC.105))
+        kTA   = kTA.101
+        r1    = r1.103
+        skC   = skC.105
+        z     = z.107
+        z.1   = verify(x.187, <x.186, z.107, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.186, x.187, z.107)
+        z.4   = z.113
+        z.5   = z.116
+        z.6   = z.117
+    
+    21. cCA   = senc(<
+                      cert(x.186, sign(<x.186, z.107, 'chip'>, ca_sk), z.107), z.113>,
+                     kdf(<'TENC', r1.103>, kTA.101))
+        certT = cert(x.192, x.193, z.117)
+        cip   = encaps(z.116, pk(skC.105))
+        kTA   = kTA.101
+        r1    = r1.103
+        skC   = skC.105
+        z     = z.107
+        z.1   = true
+        z.2   = verify(x.193, <x.192, z.117, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.186, sign(<x.186, z.107, 'chip'>, ca_sk), z.107)
+        z.4   = z.113
+        z.5   = z.116
+        z.6   = z.117
+    
+    22. cCA   = senc(<cert(x.187, x.188, z.108), z.114>,
+                     kdf(<'TENC', r1.104>, kTA.102))
+        certT = cert(x.194, x.195, z.118)
+        cip   = encaps(z.117, pk(skC.106))
+        kTA   = kTA.102
+        r1    = r1.104
+        skC   = skC.106
+        z     = z.108
+        z.1   = verify(x.188, <x.187, z.108, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.195, <x.194, z.118, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.187, x.188, z.108)
+        z.4   = z.114
+        z.5   = z.117
+        z.6   = z.118
+    
+    23. cCA   = senc(<
+                      cert(x.203, sign(<x.203, z.116, 'chip'>, ca_sk), z.116), z.122>,
+                     kdf(<'TENC', r1.112>, kTA.110))
+        certT = cert(x.209, sign(<x.209, z.126, 'terminal'>, ca_sk), z.126)
+        cip   = cip.108
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        z     = z.116
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.203, sign(<x.203, z.116, 'chip'>, ca_sk), z.116)
+        z.4   = z.122
+        z.5   = decaps(cip.108, skC.114)
+        z.6   = z.126
+    
+    24. cCA   = senc(<cert(x.204, x.205, z.117), z.123>,
+                     kdf(<'TENC', r1.113>, kTA.111))
+        certT = cert(x.211, sign(<x.211, z.127, 'terminal'>, ca_sk), z.127)
+        cip   = cip.109
+        kTA   = kTA.111
+        r1    = r1.113
+        skC   = skC.115
+        z     = z.117
+        z.1   = verify(x.205, <x.204, z.117, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.204, x.205, z.117)
+        z.4   = z.123
+        z.5   = decaps(cip.109, skC.115)
+        z.6   = z.127
+    
+    25. cCA   = senc(<
+                      cert(x.204, sign(<x.204, z.117, 'chip'>, ca_sk), z.117), z.123>,
+                     kdf(<'TENC', r1.113>, kTA.111))
+        certT = cert(x.210, x.211, z.127)
+        cip   = cip.109
+        kTA   = kTA.111
+        r1    = r1.113
+        skC   = skC.115
+        z     = z.117
+        z.1   = true
+        z.2   = verify(x.211, <x.210, z.127, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.204, sign(<x.204, z.117, 'chip'>, ca_sk), z.117)
+        z.4   = z.123
+        z.5   = decaps(cip.109, skC.115)
+        z.6   = z.127
+    
+    26. cCA   = senc(<cert(x.205, x.206, z.118), z.124>,
+                     kdf(<'TENC', r1.114>, kTA.112))
+        certT = cert(x.212, x.213, z.128)
+        cip   = cip.110
+        kTA   = kTA.112
+        r1    = r1.114
+        skC   = skC.116
+        z     = z.118
+        z.1   = verify(x.206, <x.205, z.118, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.213, <x.212, z.128, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.205, x.206, z.118)
+        z.4   = z.124
+        z.5   = decaps(cip.110, skC.116)
+        z.6   = z.128
+    
+    27. cCA   = senc(<
+                      cert(x.206, sign(<x.206, z.115, 'chip'>, ca_sk), z.115), z.121>,
+                     kdf(<'TENC', r1.111>, kTA.109))
+        certT = certT.106
+        cip   = cip.107
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = z.115
+        z.1   = true
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.206, sign(<x.206, z.115, 'chip'>, ca_sk), z.115)
+        z.4   = z.121
+        z.5   = decaps(cip.107, skC.113)
+        z.6   = cert_id(certT.106)
+    
+    28. cCA   = senc(<
+                      cert(x.206, sign(<x.206, z.115, 'chip'>, ca_sk), z.115), z.121>,
+                     kdf(<'TENC', r1.111>, kTA.109))
+        certT = certT.106
+        cip   = encaps(z.124, pk(skC.113))
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = z.115
+        z.1   = true
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.206, sign(<x.206, z.115, 'chip'>, ca_sk), z.115)
+        z.4   = z.121
+        z.5   = z.124
+        z.6   = cert_id(certT.106)
+    
+    29. cCA   = senc(<cert(x.207, x.208, z.116), z.122>,
+                     kdf(<'TENC', r1.112>, kTA.110))
+        certT = certT.107
+        cip   = cip.108
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        z     = z.116
+        z.1   = verify(x.208, <x.207, z.116, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.107),
+                       <cert_pk(certT.107), cert_id(certT.107), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.207, x.208, z.116)
+        z.4   = z.122
+        z.5   = decaps(cip.108, skC.114)
+        z.6   = cert_id(certT.107)
+    
+    30. cCA   = senc(<cert(x.207, x.208, z.116), z.122>,
+                     kdf(<'TENC', r1.112>, kTA.110))
+        certT = certT.107
+        cip   = encaps(z.125, pk(skC.114))
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        z     = z.116
+        z.1   = verify(x.208, <x.207, z.116, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.107),
+                       <cert_pk(certT.107), cert_id(certT.107), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.207, x.208, z.116)
+        z.4   = z.122
+        z.5   = z.125
+        z.6   = cert_id(certT.107)
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, kCNF> ), In( kKDF ),
+   !Ltk( T, skT, 'terminal' )
+   ]
+  --[
+  Eq( T, cert_id(certT) ),
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))),
+                  'chip'),
+      true
+  ),
+  Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( kTCNF, kdf(<'TCNF', r1>, decaps(cTA, skT)) ),
+  Eq( s,
+      mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), cip>,
+          kdf(<'TMAC', r1>, decaps(cTA, skT)))
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), cip>,
+          kKDF)
+  ),
+  ValidTrans( T, 'terminal',
+              cert_id(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))))
+  )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, kCNF> ), In( kKDF ),
+     !Ltk( T, skT, 'terminal' )
+     ]
+    --[
+    Eq( T, z ), Eq( z.1, true ), Eq( z.2, true ),
+    Eq( kTCNF, kdf(<'TCNF', r1>, z.3) ),
+    Eq( s, mac(<'CA', certT, z.4, z.5, cip>, kdf(<'TMAC', r1>, z.3)) ),
+    Eq( kCNF, kdf(<'CNF', certT, z.4, z.5, cip>, kKDF) ),
+    ValidTrans( T, 'terminal', z.6 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. cCA   = cCA.35
+        cTA   = cTA.36
+        certT = certT.37
+        r1    = r1.42
+        skT   = skT.44
+        z     = cert_id(certT.37)
+        z.1   = verify(cert_sig(fst(sdec(cCA.35,
+                                         kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))),
+                       <
+                        cert_pk(fst(sdec(cCA.35,
+                                         kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))), 
+                        cert_id(fst(sdec(cCA.35,
+                                         kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.37),
+                       <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.36, skT.44)
+        z.4   = fst(sdec(cCA.35, kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))
+        z.5   = snd(sdec(cCA.35, kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))
+        z.6   = cert_id(fst(sdec(cCA.35,
+                                 kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44)))))
+    
+     2. cCA   = cCA.41
+        cTA   = encaps(z.56, pk(skT.50))
+        certT = certT.43
+        r1    = r1.48
+        skT   = skT.50
+        z     = cert_id(certT.43)
+        z.1   = verify(cert_sig(fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))),
+                       <cert_pk(fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))), 
+                        cert_id(fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.43),
+                       <cert_pk(certT.43), cert_id(certT.43), 'terminal'>, pk(ca_sk))
+        z.3   = z.56
+        z.4   = fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))
+        z.5   = snd(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))
+        z.6   = cert_id(fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56))))
+    
+     3. cCA   = cCA.114
+        cTA   = cTA.115
+        certT = cert(x.224, sign(<x.224, z.125, 'terminal'>, ca_sk), z.125)
+        r1    = r1.121
+        skT   = skT.123
+        z     = z.125
+        z.1   = verify(cert_sig(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))),
+                       <
+                        cert_pk(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))), 
+                        cert_id(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.115, skT.123)
+        z.4   = fst(sdec(cCA.114,
+                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))
+        z.5   = snd(sdec(cCA.114,
+                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))
+        z.6   = cert_id(fst(sdec(cCA.114,
+                                 kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123)))))
+    
+     4. cCA   = cCA.115
+        cTA   = cTA.116
+        certT = cert(x.225, x.226, z.126)
+        r1    = r1.122
+        skT   = skT.124
+        z     = z.126
+        z.1   = verify(cert_sig(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))),
+                       <
+                        cert_pk(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))), 
+                        cert_id(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.226, <x.225, z.126, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.116, skT.124)
+        z.4   = fst(sdec(cCA.115,
+                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))
+        z.5   = snd(sdec(cCA.115,
+                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))
+        z.6   = cert_id(fst(sdec(cCA.115,
+                                 kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124)))))
+    
+     5. cCA   = cCA.116
+        cTA   = encaps(z.131, pk(skT.125))
+        certT = cert(x.228, sign(<x.228, z.127, 'terminal'>, ca_sk), z.127)
+        r1    = r1.123
+        skT   = skT.125
+        z     = z.127
+        z.1   = verify(cert_sig(fst(sdec(cCA.116,
+                                         kdf(<'TENC', r1.123>, z.131)))),
+                       <cert_pk(fst(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131)))), 
+                        cert_id(fst(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.131
+        z.4   = fst(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131)))
+        z.5   = snd(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131)))
+        z.6   = cert_id(fst(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131))))
+    
+     6. cCA   = cCA.117
+        cTA   = encaps(z.132, pk(skT.126))
+        certT = cert(x.229, x.230, z.128)
+        r1    = r1.124
+        skT   = skT.126
+        z     = z.128
+        z.1   = verify(cert_sig(fst(sdec(cCA.117,
+                                         kdf(<'TENC', r1.124>, z.132)))),
+                       <cert_pk(fst(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132)))), 
+                        cert_id(fst(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.230, <x.229, z.128, 'terminal'>, pk(ca_sk))
+        z.3   = z.132
+        z.4   = fst(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132)))
+        z.5   = snd(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132)))
+        z.6   = cert_id(fst(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132))))
+    
+     7. cCA   = senc(x.165, kdf(<'TENC', r1.90>, z.98))
+        cTA   = encaps(z.98, pk(skT.92))
+        certT = cert(x.169, sign(<x.169, z.94, 'terminal'>, ca_sk), z.94)
+        r1    = r1.90
+        skT   = skT.92
+        z     = z.94
+        z.1   = verify(cert_sig(fst(x.165)),
+                       <cert_pk(fst(x.165)), cert_id(fst(x.165)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.98
+        z.4   = fst(x.165)
+        z.5   = snd(x.165)
+        z.6   = cert_id(fst(x.165))
+    
+     8. cCA   = senc(x.166, kdf(<'TENC', r1.91>, z.99))
+        cTA   = encaps(z.99, pk(skT.93))
+        certT = cert(x.170, x.171, z.95)
+        r1    = r1.91
+        skT   = skT.93
+        z     = z.95
+        z.1   = verify(cert_sig(fst(x.166)),
+                       <cert_pk(fst(x.166)), cert_id(fst(x.166)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.171, <x.170, z.95, 'terminal'>, pk(ca_sk))
+        z.3   = z.99
+        z.4   = fst(x.166)
+        z.5   = snd(x.166)
+        z.6   = cert_id(fst(x.166))
+    
+     9. cCA   = senc(x.206, kdf(<'TENC', r1.111>, z.119))
+        cTA   = encaps(z.119, pk(skT.113))
+        certT = certT.106
+        r1    = r1.111
+        skT   = skT.113
+        z     = cert_id(certT.106)
+        z.1   = verify(cert_sig(fst(x.206)),
+                       <cert_pk(fst(x.206)), cert_id(fst(x.206)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = z.119
+        z.4   = fst(x.206)
+        z.5   = snd(x.206)
+        z.6   = cert_id(fst(x.206))
+    
+    10. cCA   = senc(x.215, kdf(<'TENC', r1.116>, decaps(cTA.110, skT.118)))
+        cTA   = cTA.110
+        certT = certT.111
+        r1    = r1.116
+        skT   = skT.118
+        z     = cert_id(certT.111)
+        z.1   = verify(cert_sig(fst(x.215)),
+                       <cert_pk(fst(x.215)), cert_id(fst(x.215)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.111),
+                       <cert_pk(certT.111), cert_id(certT.111), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.110, skT.118)
+        z.4   = fst(x.215)
+        z.5   = snd(x.215)
+        z.6   = cert_id(fst(x.215))
+    
+    11. cCA   = senc(x.219, kdf(<'TENC', r1.120>, decaps(cTA.114, skT.122)))
+        cTA   = cTA.114
+        certT = cert(x.223, sign(<x.223, z.124, 'terminal'>, ca_sk), z.124)
+        r1    = r1.120
+        skT   = skT.122
+        z     = z.124
+        z.1   = verify(cert_sig(fst(x.219)),
+                       <cert_pk(fst(x.219)), cert_id(fst(x.219)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.114, skT.122)
+        z.4   = fst(x.219)
+        z.5   = snd(x.219)
+        z.6   = cert_id(fst(x.219))
+    
+    12. cCA   = senc(x.220, kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123)))
+        cTA   = cTA.115
+        certT = cert(x.224, x.225, z.125)
+        r1    = r1.121
+        skT   = skT.123
+        z     = z.125
+        z.1   = verify(cert_sig(fst(x.220)),
+                       <cert_pk(fst(x.220)), cert_id(fst(x.220)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.225, <x.224, z.125, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.115, skT.123)
+        z.4   = fst(x.220)
+        z.5   = snd(x.220)
+        z.6   = cert_id(fst(x.220))
+    
+    13. cCA   = senc(<z.57, z.58>, kdf(<'TENC', r1.47>, z.55))
+        cTA   = encaps(z.55, pk(skT.49))
+        certT = certT.42
+        r1    = r1.47
+        skT   = skT.49
+        z     = cert_id(certT.42)
+        z.1   = verify(cert_sig(z.57), <cert_pk(z.57), cert_id(z.57), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.42),
+                       <cert_pk(certT.42), cert_id(certT.42), 'terminal'>, pk(ca_sk))
+        z.3   = z.55
+        z.4   = z.57
+        z.5   = z.58
+        z.6   = cert_id(z.57)
+    
+    14. cCA   = senc(<z.59, z.60>,
+                     kdf(<'TENC', r1.49>, decaps(cTA.43, skT.51)))
+        cTA   = cTA.43
+        certT = certT.44
+        r1    = r1.49
+        skT   = skT.51
+        z     = cert_id(certT.44)
+        z.1   = verify(cert_sig(z.59), <cert_pk(z.59), cert_id(z.59), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.44),
+                       <cert_pk(certT.44), cert_id(certT.44), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.43, skT.51)
+        z.4   = z.59
+        z.5   = z.60
+        z.6   = cert_id(z.59)
+    
+    15. cCA   = senc(<z.101, z.102>, kdf(<'TENC', r1.91>, z.99))
+        cTA   = encaps(z.99, pk(skT.93))
+        certT = cert(x.171, sign(<x.171, z.95, 'terminal'>, ca_sk), z.95)
+        r1    = r1.91
+        skT   = skT.93
+        z     = z.95
+        z.1   = verify(cert_sig(z.101), <cert_pk(z.101), cert_id(z.101), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.99
+        z.4   = z.101
+        z.5   = z.102
+        z.6   = cert_id(z.101)
+    
+    16. cCA   = senc(<z.102, z.103>, kdf(<'TENC', r1.92>, z.100))
+        cTA   = encaps(z.100, pk(skT.94))
+        certT = cert(x.172, x.173, z.96)
+        r1    = r1.92
+        skT   = skT.94
+        z     = z.96
+        z.1   = verify(cert_sig(z.102), <cert_pk(z.102), cert_id(z.102), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.173, <x.172, z.96, 'terminal'>, pk(ca_sk))
+        z.3   = z.100
+        z.4   = z.102
+        z.5   = z.103
+        z.6   = cert_id(z.102)
+    
+    17. cCA   = senc(<z.131, z.132>,
+                     kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123)))
+        cTA   = cTA.115
+        certT = cert(x.225, sign(<x.225, z.125, 'terminal'>, ca_sk), z.125)
+        r1    = r1.121
+        skT   = skT.123
+        z     = z.125
+        z.1   = verify(cert_sig(z.131), <cert_pk(z.131), cert_id(z.131), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.115, skT.123)
+        z.4   = z.131
+        z.5   = z.132
+        z.6   = cert_id(z.131)
+    
+    18. cCA   = senc(<z.132, z.133>,
+                     kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124)))
+        cTA   = cTA.116
+        certT = cert(x.226, x.227, z.126)
+        r1    = r1.122
+        skT   = skT.124
+        z     = z.126
+        z.1   = verify(cert_sig(z.132), <cert_pk(z.132), cert_id(z.132), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.227, <x.226, z.126, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.116, skT.124)
+        z.4   = z.132
+        z.5   = z.133
+        z.6   = cert_id(z.132)
+    
+    19. cCA   = senc(<
+                      cert(x.167, sign(<x.167, z.106, 'chip'>, ca_sk), z.106), z.103>,
+                     kdf(<'TENC', r1.92>, z.100))
+        cTA   = encaps(z.100, pk(skT.94))
+        certT = cert(x.173, sign(<x.173, z.96, 'terminal'>, ca_sk), z.96)
+        r1    = r1.92
+        skT   = skT.94
+        z     = z.96
+        z.1   = true
+        z.2   = true
+        z.3   = z.100
+        z.4   = cert(x.167, sign(<x.167, z.106, 'chip'>, ca_sk), z.106)
+        z.5   = z.103
+        z.6   = z.106
+    
+    20. cCA   = senc(<cert(x.168, x.169, z.107), z.104>,
+                     kdf(<'TENC', r1.93>, z.101))
+        cTA   = encaps(z.101, pk(skT.95))
+        certT = cert(x.175, sign(<x.175, z.97, 'terminal'>, ca_sk), z.97)
+        r1    = r1.93
+        skT   = skT.95
+        z     = z.97
+        z.1   = verify(x.169, <x.168, z.107, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.101
+        z.4   = cert(x.168, x.169, z.107)
+        z.5   = z.104
+        z.6   = z.107
+    
+    21. cCA   = senc(<
+                      cert(x.168, sign(<x.168, z.107, 'chip'>, ca_sk), z.107), z.104>,
+                     kdf(<'TENC', r1.93>, z.101))
+        cTA   = encaps(z.101, pk(skT.95))
+        certT = cert(x.174, x.175, z.97)
+        r1    = r1.93
+        skT   = skT.95
+        z     = z.97
+        z.1   = true
+        z.2   = verify(x.175, <x.174, z.97, 'terminal'>, pk(ca_sk))
+        z.3   = z.101
+        z.4   = cert(x.168, sign(<x.168, z.107, 'chip'>, ca_sk), z.107)
+        z.5   = z.104
+        z.6   = z.107
+    
+    22. cCA   = senc(<cert(x.169, x.170, z.108), z.105>,
+                     kdf(<'TENC', r1.94>, z.102))
+        cTA   = encaps(z.102, pk(skT.96))
+        certT = cert(x.176, x.177, z.98)
+        r1    = r1.94
+        skT   = skT.96
+        z     = z.98
+        z.1   = verify(x.170, <x.169, z.108, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.177, <x.176, z.98, 'terminal'>, pk(ca_sk))
+        z.3   = z.102
+        z.4   = cert(x.169, x.170, z.108)
+        z.5   = z.105
+        z.6   = z.108
+    
+    23. cCA   = senc(<
+                      cert(x.206, sign(<x.206, z.125, 'chip'>, ca_sk), z.125), z.122>,
+                     kdf(<'TENC', r1.111>, z.119))
+        cTA   = encaps(z.119, pk(skT.113))
+        certT = certT.106
+        r1    = r1.111
+        skT   = skT.113
+        z     = cert_id(certT.106)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = z.119
+        z.4   = cert(x.206, sign(<x.206, z.125, 'chip'>, ca_sk), z.125)
+        z.5   = z.122
+        z.6   = z.125
+    
+    24. cCA   = senc(<cert(x.207, x.208, z.126), z.123>,
+                     kdf(<'TENC', r1.112>, z.120))
+        cTA   = encaps(z.120, pk(skT.114))
+        certT = certT.107
+        r1    = r1.112
+        skT   = skT.114
+        z     = cert_id(certT.107)
+        z.1   = verify(x.208, <x.207, z.126, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.107),
+                       <cert_pk(certT.107), cert_id(certT.107), 'terminal'>, pk(ca_sk))
+        z.3   = z.120
+        z.4   = cert(x.207, x.208, z.126)
+        z.5   = z.123
+        z.6   = z.126
+    
+    25. cCA   = senc(<
+                      cert(x.215, sign(<x.215, z.130, 'chip'>, ca_sk), z.130), z.127>,
+                     kdf(<'TENC', r1.116>, decaps(cTA.110, skT.118)))
+        cTA   = cTA.110
+        certT = certT.111
+        r1    = r1.116
+        skT   = skT.118
+        z     = cert_id(certT.111)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.111),
+                       <cert_pk(certT.111), cert_id(certT.111), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.110, skT.118)
+        z.4   = cert(x.215, sign(<x.215, z.130, 'chip'>, ca_sk), z.130)
+        z.5   = z.127
+        z.6   = z.130
+    
+    26. cCA   = senc(<cert(x.216, x.217, z.131), z.128>,
+                     kdf(<'TENC', r1.117>, decaps(cTA.111, skT.119)))
+        cTA   = cTA.111
+        certT = certT.112
+        r1    = r1.117
+        skT   = skT.119
+        z     = cert_id(certT.112)
+        z.1   = verify(x.217, <x.216, z.131, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.112),
+                       <cert_pk(certT.112), cert_id(certT.112), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.111, skT.119)
+        z.4   = cert(x.216, x.217, z.131)
+        z.5   = z.128
+        z.6   = z.131
+    
+    27. cCA   = senc(<
+                      cert(x.221, sign(<x.221, z.136, 'chip'>, ca_sk), z.136), z.133>,
+                     kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124)))
+        cTA   = cTA.116
+        certT = cert(x.227, sign(<x.227, z.126, 'terminal'>, ca_sk), z.126)
+        r1    = r1.122
+        skT   = skT.124
+        z     = z.126
+        z.1   = true
+        z.2   = true
+        z.3   = decaps(cTA.116, skT.124)
+        z.4   = cert(x.221, sign(<x.221, z.136, 'chip'>, ca_sk), z.136)
+        z.5   = z.133
+        z.6   = z.136
+    
+    28. cCA   = senc(<cert(x.222, x.223, z.137), z.134>,
+                     kdf(<'TENC', r1.123>, decaps(cTA.117, skT.125)))
+        cTA   = cTA.117
+        certT = cert(x.229, sign(<x.229, z.127, 'terminal'>, ca_sk), z.127)
+        r1    = r1.123
+        skT   = skT.125
+        z     = z.127
+        z.1   = verify(x.223, <x.222, z.137, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.117, skT.125)
+        z.4   = cert(x.222, x.223, z.137)
+        z.5   = z.134
+        z.6   = z.137
+    
+    29. cCA   = senc(<
+                      cert(x.222, sign(<x.222, z.137, 'chip'>, ca_sk), z.137), z.134>,
+                     kdf(<'TENC', r1.123>, decaps(cTA.117, skT.125)))
+        cTA   = cTA.117
+        certT = cert(x.228, x.229, z.127)
+        r1    = r1.123
+        skT   = skT.125
+        z     = z.127
+        z.1   = true
+        z.2   = verify(x.229, <x.228, z.127, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.117, skT.125)
+        z.4   = cert(x.222, sign(<x.222, z.137, 'chip'>, ca_sk), z.137)
+        z.5   = z.134
+        z.6   = z.137
+    
+    30. cCA   = senc(<cert(x.223, x.224, z.138), z.135>,
+                     kdf(<'TENC', r1.124>, decaps(cTA.118, skT.126)))
+        cTA   = cTA.118
+        certT = cert(x.230, x.231, z.128)
+        r1    = r1.124
+        skT   = skT.126
+        z     = z.128
+        z.1   = verify(x.224, <x.223, z.138, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.231, <x.230, z.128, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.118, skT.126)
+        z.4   = cert(x.223, x.224, z.138)
+        z.5   = z.135
+        z.6   = z.138
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( mac(<'CA', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                kdf(<'TMAC', ~r1>, ~kTA))
+                       ) @ #vk.3 )
+                  case c_mac
+                  solve( !KU( ~r2 ) @ #vk.41 )
+                    case CA_INIT_C
+                    solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.14 )
+                      case TA_RESPONSE_T
+                      solve( !KU( senc(<
+                                        cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2>,
+                                       kdf(<'TENC', r1.1>, decaps(cTA, ~skT)))
+                             ) @ #vk.33 )
+                        case c_senc
+                        solve( !KU( kdf(<'TMAC', ~r1>, ~kTA) ) @ #vk.42 )
+                          case c_kdf
+                          solve( !KU( ~kTA ) @ #vk.52 )
+                            case TA_CHALLENGE_C
+                            solve( !KU( ~ltk.1 ) @ #vk.54 )
+                              case Corrupt_ltk
+                              solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.48 )
+                                case c_kdf
+                                solve( !KU( encaps(~kTA, pk(~skT.1)) ) @ #vk.53 )
+                                  case TA_CHALLENGE_C
+                                  solve( !KU( kdf(<'TENC', r1.1>, decaps(cTA, ~skT)) ) @ #vk.54 )
+                                    case c_kdf
+                                    solve( !KU( decaps(cTA, ~skT) ) @ #vk.58 )
+                                      case c_decaps
+                                      solve( !KU( ~skT ) @ #vk.59 )
+                                        case Corrupt_ltk
+                                        solve( !KU( ~r1 ) @ #vk.55 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( cert(pk(~ltk.1),
+                                                           sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T)
+                                                 ) @ #vk.33 )
+                                            case CA_Sign_ltk
+                                            solve( !KU( kdf(<'CNF', 
+                                                             cert(pk(~ltk.1),
+                                                                  sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                                  $T), 
+                                                             cert(pk(~ltk),
+                                                                  sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                             ~r2, encaps(~k, pk(~ltk))>,
+                                                            ~k)
+                                                   ) @ #vk.38 )
+                                              case CA_FINISH_C
+                                              solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.30 )
+                                                case CA_INIT_T
+                                                solve( !KU( cert(pk(~ltk),
+                                                                 sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                                       ) @ #vk.56 )
+                                                  case CA_Sign_ltk
+                                                  SOLVED // trace found
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case CA_FINISH_C
+                solve( CAInitC( <$C, iid.1>, cert(x, x.1, $T), id_c.1, r1.1,
+                                <kTA.1, cTA>, kTMAC, kTENC, r2.1
+                       ) ▶₁ #i2 )
+                  case CA_INIT_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( kdf(<'KEY', 
+                                             cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), 
+                                             ~r2.1, cip>,
+                                            z),
+                                        <cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1, 
+                                         cip>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( CAInitT( <$T, iid.3>, id_c.3, kTMAC, kTENC,
+                                        cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1,
+                                        <z, cip>
+                               ) ▶₁ #j2 )
+                          case CA_INIT_T
+                          solve( !Cert( $T, cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( splitEqs(2) )
+                              case split_case_1
+                              solve( splitEqs(5) )
+                                case split_case_1
+                                solve( !KU( mac(<'CA', 
+                                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                      $T), 
+                                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                 ~r2, encaps(~k, pk(~ltk))>,
+                                                kdf(<'TMAC', ~r1>, ~kTA))
+                                       ) @ #vk.3 )
+                                  case c_mac
+                                  solve( !KU( ~r2 ) @ #vk.59 )
+                                    case CA_INIT_C
+                                    solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.18 )
+                                      case TA_RESPONSE_T
+                                      solve( !KU( senc(<
+                                                        cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                             $C), 
+                                                        ~r2>,
+                                                       kdf(<'TENC', r1.2>, decaps(cTA, ~skT)))
+                                             ) @ #vk.42 )
+                                        case c_senc
+                                        solve( !KU( mac(<'CA', 
+                                                         cert(pk(~ltk.2),
+                                                              sign(<pk(~ltk.2), $T, 'terminal'>, ca_sk), $T), 
+                                                         cert(pk(~skC), sign(<pk(~skC), $C, 'chip'>, ca_sk),
+                                                              $C), 
+                                                         ~r2.1, encaps(~k.1, pk(~skC))>,
+                                                        kdf(<'TMAC', ~r1.1>, ~kTA.1))
+                                               ) @ #vk.52 )
+                                          case CA_INIT_T
+                                          solve( !KU( senc(<
+                                                            cert(pk(~skC),
+                                                                 sign(<pk(~skC), $C, 'chip'>, ca_sk), $C), 
+                                                            ~r2.1>,
+                                                           kdf(<'TENC', ~r1.1>, ~kTA.1))
+                                                 ) @ #vk.57 )
+                                            case CA_INIT_C
+                                            solve( !KU( encaps(~kTA.1, pk(~skT.1)) ) @ #vk.60 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( kdf(<'TMAC', ~r1>, ~kTA) ) @ #vk.61 )
+                                                case c_kdf
+                                                solve( !KU( ~kTA ) @ #vk.70 )
+                                                  case TA_CHALLENGE_C
+                                                  solve( !KU( ~ltk.1 ) @ #vk.72 )
+                                                    case Corrupt_ltk
+                                                    solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.66 )
+                                                      case c_kdf
+                                                      solve( !KU( encaps(~kTA, pk(~skT.2)) ) @ #vk.71 )
+                                                        case TA_CHALLENGE_C
+                                                        solve( !KU( kdf(<'TENC', r1.2>, decaps(cTA, ~skT.1))
+                                                               ) @ #vk.72 )
+                                                          case c_kdf
+                                                          solve( !KU( decaps(cTA, ~skT.1) ) @ #vk.76 )
+                                                            case c_decaps
+                                                            solve( !KU( ~skT.1 ) @ #vk.77 )
+                                                              case Corrupt_ltk
+                                                              solve( !KU( ~r1 ) @ #vk.73 )
+                                                                case TA_CHALLENGE_C
+                                                                solve( !KU( ~r1.1 ) @ #vk.70 )
+                                                                  case TA_CHALLENGE_C
+                                                                  solve( !KU( cert(pk(~ltk.1),
+                                                                                   sign(<pk(~ltk.1), $T, 
+                                                                                         'terminal'>,
+                                                                                        ca_sk),
+                                                                                   $T)
+                                                                         ) @ #vk.47 )
+                                                                    case CA_Sign_ltk
+                                                                    solve( !KU( kdf(<'CNF', 
+                                                                                     cert(pk(~ltk.1),
+                                                                                          sign(<pk(~ltk.1), 
+                                                                                                $T, 'terminal'
+                                                                                               >,
+                                                                                               ca_sk),
+                                                                                          $T), 
+                                                                                     cert(pk(~ltk),
+                                                                                          sign(<pk(~ltk), $C, 
+                                                                                                'chip'>,
+                                                                                               ca_sk),
+                                                                                          $C), 
+                                                                                     ~r2, encaps(~k, pk(~ltk))
+                                                                                    >,
+                                                                                    ~k)
+                                                                           ) @ #vk.50 )
+                                                                      case CA_FINISH_C
+                                                                      solve( !KU( encaps(~k, pk(~ltk))
+                                                                             ) @ #vk.40 )
+                                                                        case CA_INIT_T
+                                                                        solve( !KU( kdf(<'TCNF', ~r1.1>,
+                                                                                        ~kTA.1)
+                                                                               ) @ #vk.69 )
+                                                                          case TA_RESPONSE_T
+                                                                          solve( !KU( encaps(~kTA.1,
+                                                                                             pk(~skT.2))
+                                                                                 ) @ #vk.82 )
+                                                                            case TA_CHALLENGE_C
+                                                                            solve( !KU( cert(pk(~skT),
+                                                                                             sign(<pk(~skT), 
+                                                                                                   $T, 
+                                                                                                   'terminal'
+                                                                                                  >,
+                                                                                                  ca_sk),
+                                                                                             $T)
+                                                                                   ) @ #vk.71 )
+                                                                              case CA_Sign_ltk
+                                                                              solve( !KU( kdf(<'CNF', 
+                                                                                               cert(pk(~skT),
+                                                                                                    sign(<
+                                                                                                          pk(~skT), 
+                                                                                                          $T, 
+                                                                                                          'terminal'
+                                                                                                         >,
+                                                                                                         ca_sk),
+                                                                                                    $T), 
+                                                                                               cert(pk(~skC),
+                                                                                                    sign(<
+                                                                                                          pk(~skC), 
+                                                                                                          $C, 
+                                                                                                          'chip'
+                                                                                                         >,
+                                                                                                         ca_sk),
+                                                                                                    $C), 
+                                                                                               ~r2.1, 
+                                                                                               encaps(~k.1,
+                                                                                                      pk(~skC))
+                                                                                              >,
+                                                                                              ~k.1)
+                                                                                     ) @ #vk.72 )
+                                                                                case CA_FINISH_C
+                                                                                solve( !KU( encaps(~k.1,
+                                                                                                   pk(~skC))
+                                                                                       ) @ #vk.72 )
+                                                                                  case CA_INIT_T
+                                                                                  solve( !KU( cert(pk(~ltk),
+                                                                                                   sign(<
+                                                                                                         pk(~ltk), 
+                                                                                                         $C, 
+                                                                                                         'chip'
+                                                                                                        >,
+                                                                                                        ca_sk),
+                                                                                                   $C)
+                                                                                         ) @ #vk.75 )
+                                                                                    case CA_INIT_C
+                                                                                    solve( !KU( kdf(<'TENC', 
+                                                                                                     ~r1.3>,
+                                                                                                    ~kTA.2)
+                                                                                           ) @ #vk.82 )
+                                                                                      case c_kdf
+                                                                                      solve( !KU( ~kTA.2
+                                                                                             ) @ #vk.86 )
+                                                                                        case TA_CHALLENGE_C
+                                                                                        solve( !KU( kdf(<
+                                                                                                         'TCNF', 
+                                                                                                         ~r1.3
+                                                                                                        >,
+                                                                                                        ~kTA.2)
+                                                                                               ) @ #vk.85 )
+                                                                                          case TA_RESPONSE_T
+                                                                                          solve( !KU( cert(pk(sk),
+                                                                                                           sign(<
+                                                                                                                 pk(sk), 
+                                                                                                                 z, 
+                                                                                                                 'terminal'
+                                                                                                                >,
+                                                                                                                ca_sk),
+                                                                                                           z)
+                                                                                                 ) @ #vk.87 )
+                                                                                            case CA_Sign_ltk
+                                                                                            solve( !KU( ~ltk.5
+                                                                                                   ) @ #vk.91 )
+                                                                                              case Corrupt_ltk
+                                                                                              solve( !KU( encaps(~kTA.2,
+                                                                                                                 pk(~skT.2))
+                                                                                                     ) @ #vk.93 )
+                                                                                                case TA_CHALLENGE_C
+                                                                                                solve( !KU( ~r1.3
+                                                                                                       ) @ #vk.92 )
+                                                                                                  case TA_CHALLENGE_C
+                                                                                                  SOLVED // trace found
+                                                                                                qed
+                                                                                              qed
+                                                                                            qed
+                                                                                          qed
+                                                                                        qed
+                                                                                      qed
+                                                                                    qed
+                                                                                  qed
+                                                                                qed
+                                                                              qed
+                                                                            qed
+                                                                          qed
+                                                                        qed
+                                                                      qed
+                                                                    qed
+                                                                  qed
+                                                                qed
+                                                              qed
+                                                            qed
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>,
+                      cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                      <kTA, cTA>, kTMAC, kTENC, r2
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c, kTMAC, kTENC,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.20 )
+              case CA_INIT_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2>,
+                               kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                     ) @ #vk.13 )
+                case c_senc
+                solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                       ) @ #vk.26 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.30 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.30 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_cert
+                  solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.33 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_sign
+                    by solve( !KU( ca_sk ) @ #vk.37 )
+                  qed
+                qed
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.20 )
+              case CA_INIT_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2>,
+                               kdf(<'TENC', r1>, z))
+                     ) @ #vk.13 )
+                case CA_INIT_C
+                solve( !KU( ~r2 ) @ #vk.28 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.29 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_senc
+                solve( !KU( encaps(z, pk(~skT)) ) @ #vk.19 )
+                  case CA_INIT_T
+                  solve( splitEqs(6) )
+                    case split_case_1
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.41 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.45 )
+                      qed
+                    qed
+                  next
+                    case split_case_2
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.41 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.45 )
+                      qed
+                    qed
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.27 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.38 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.42 )
+                    qed
+                  qed
+                next
+                  case c_encaps
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.27 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.35 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.39 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>,
+                      cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                      <kTA, cTA>, kTMAC, kTENC, r2
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.37 )
+                    case CA_INIT_T
+                    solve( !KU( ~r2 ) @ #vk.41 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk ) @ #vk.42 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            next
+              case split_case_2
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.37 )
+                    case CA_INIT_T
+                    solve( !KU( ~r2 ) @ #vk.41 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk ) @ #vk.42 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c, kTMAC, kTENC,
+                      cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.20 )
+              case CA_INIT_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2>,
+                               kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                     ) @ #vk.13 )
+                case c_senc
+                solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                       ) @ #vk.26 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.30 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.30 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_cert
+                  solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.33 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_sign
+                    by solve( !KU( ca_sk ) @ #vk.37 )
+                  qed
+                qed
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.20 )
+              case CA_INIT_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2>,
+                               kdf(<'TENC', r1>, z))
+                     ) @ #vk.13 )
+                case CA_INIT_C
+                solve( !KU( ~r2 ) @ #vk.28 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.29 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_senc
+                solve( !KU( encaps(z, pk(~skT)) ) @ #vk.19 )
+                  case CA_INIT_T
+                  solve( splitEqs(6) )
+                    case split_case_1
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.41 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.45 )
+                      qed
+                    qed
+                  next
+                    case split_case_2
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.41 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.45 )
+                      qed
+                    qed
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.27 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.38 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.42 )
+                    qed
+                  qed
+                next
+                  case c_encaps
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.27 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.35 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.39 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>
+       ) ▶₁ #t )
+  case CA_INIT_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_C
+      by contradiction /* from formulas */
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T.1, iid>, id_c, kTMAC, kTENC,
+                      cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.20 )
+              case CA_INIT_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B), r2>,
+                               kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                     ) @ #vk.13 )
+                case c_senc
+                solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                       ) @ #vk.26 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.30 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.30 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_cert
+                  solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.33 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.31 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_sign
+                    by solve( !KU( ca_sk ) @ #vk.37 )
+                  qed
+                qed
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.20 )
+              case CA_INIT_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B), r2>,
+                               kdf(<'TENC', r1>, z))
+                     ) @ #vk.13 )
+                case CA_INIT_C
+                solve( !KU( ~r2 ) @ #vk.28 )
+                  case CA_INIT_C
+                  solve( !KU( ~ltk.1 ) @ #vk.29 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_senc
+                solve( !KU( encaps(z, pk(~skT)) ) @ #vk.19 )
+                  case CA_INIT_T
+                  solve( splitEqs(6) )
+                    case split_case_1
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                           ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.41 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.45 )
+                      qed
+                    qed
+                  next
+                    case split_case_2
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                           ) @ #vk.30 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.34 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.41 )
+                        case CA_INIT_C
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.35 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.45 )
+                      qed
+                    qed
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                         ) @ #vk.27 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.38 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.42 )
+                    qed
+                  qed
+                next
+                  case c_encaps
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                         ) @ #vk.27 )
+                    case CA_INIT_C
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.30 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.35 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.31 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.39 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z.1),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case CA_FINISH_C
+              solve( CAInitC( <$C, iid.1>, cert(z, sign(<z, B, 'terminal'>, ca_sk), B),
+                              id_c.1, r1.1, <kTA.1, cTA>, kTMAC, kTENC, ~r2
+                     ) ▶₁ #j )
+                case CA_INIT_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                                ~k),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>
+                   ) ▶₁ #j )
+              case CA_INIT_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_C
+      solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2
+             ) ▶₁ #i )
+        case CA_INIT_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z.1),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case CA_FINISH_C
+              solve( CAInitC( <$C, iid.1>, cert(z, sign(<z, B, 'terminal'>, ca_sk), B),
+                              id_c.1, r1.1, <kTA.1, cTA>, kTMAC, kTENC, ~r2
+                     ) ▶₁ #j )
+                case CA_INIT_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case CA_FINISH_T
+      solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>
+             ) ▶₁ #i )
+        case CA_INIT_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                                ~k),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                            cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>
+                   ) ▶₁ #j )
+              case CA_INIT_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_C
+    solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2
+           ) ▶₁ #i )
+      case CA_INIT_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                z.1),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case CA_FINISH_C
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  next
+    case CA_FINISH_T
+    solve( CAInitT( <$T, iid>, id_c, kTMAC, kTENC, certC, r2, <k, cip>
+           ) ▶₁ #i )
+      case CA_INIT_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                               cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                              ~k),
+                          sid2, $T, 'terminal', B
+               ) @ #j )
+          case CA_FINISH_T
+          by contradiction /* from formulas */
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( splitEqs(2) )
+                  case split_case_1
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.3 )
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.41 )
+                      case CA_INIT_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.14 )
+                        case TA_RESPONSE_T
+                        solve( !KU( kdf(<'CNF', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk))>,
+                                        ~k)
+                               ) @ #vk.21 )
+                          case c_kdf
+                          solve( !KU( ~k ) @ #vk.50 )
+                            case CA_INIT_T
+                            solve( !KU( ~ltk ) @ #vk.52 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.44 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.47 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk))>,
+                                            ~k)
+                                   ) @ #vk.23 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.49 )
+                                case CA_INIT_T
+                                solve( !KU( ~ltk ) @ #vk.51 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case split_case_2
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.3 )
+                    case CA_INIT_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.16 )
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.37 )
+                        case CA_INIT_T
+                        solve( !KU( ~r2 ) @ #vk.41 )
+                          case CA_INIT_C
+                          solve( !KU( ~ltk ) @ #vk.42 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.41 )
+                      case CA_INIT_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.14 )
+                        case TA_RESPONSE_T
+                        solve( !KU( kdf(<'CNF', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk))>,
+                                        ~k)
+                               ) @ #vk.21 )
+                          case c_kdf
+                          solve( !KU( ~k ) @ #vk.50 )
+                            case CA_INIT_T
+                            solve( !KU( ~ltk ) @ #vk.52 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.44 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.47 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk))>,
+                                            ~k)
+                                   ) @ #vk.23 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.49 )
+                                case CA_INIT_T
+                                solve( !KU( ~ltk ) @ #vk.51 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.38 )
+                    case CA_INIT_T
+                    solve( !KU( ~r2 ) @ #vk.42 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk ) @ #vk.43 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.38 )
+                    case CA_INIT_T
+                    solve( !KU( ~r2 ) @ #vk.42 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk ) @ #vk.43 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, certT, id_c, r1, <kTA, cTA> ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !KU( ~iid ) @ #vk.6 )
+    case CA_INIT_C
+    by contradiction /* cyclic */
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( splitEqs(0) )
+      case split_case_2
+      solve( !KU( cert(x, sign(<x, T, 'terminal'>, ca_sk), T) ) @ #vk.1 )
+        case CA_Sign_ltk
+        solve( !KU( senc(<cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z>,
+                         kdf(<'TENC', r1>, kTA))
+               ) @ #vk.11 )
+          case c_senc
+          solve( !KU( mac(<'CA', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                           cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z, encaps(z.1, pk(~ltk.1))
+                          >,
+                          kdf(<'TMAC', r1>, kTA))
+                 ) @ #vk.15 )
+            case c_mac
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                             cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z, encaps(z.1, pk(~ltk.1))
+                            >,
+                            z.1)
+                   ) @ #vk.18 )
+              case c_kdf
+              solve( !KU( encaps(z.1, pk(~ltk.1)) ) @ #vk.19 )
+                case c_encaps
+                solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.25 )
+                  case CA_Sign_ltk
+                  solve( !KU( kdf(<'TCNF', r1>, kTA) ) @ #vk.21 )
+                    case c_kdf
+                    solve( !KU( kdf(<'TENC', r1>, kTA) ) @ #vk.26 )
+                      case c_kdf
+                      solve( !KU( kdf(<'TMAC', r1>, kTA) ) @ #vk.29 )
+                        case c_kdf
+                        solve( !KU( pk(~ltk.2) ) @ #vk.34 )
+                          case CA_Sign_ltk
+                          SOLVED // trace found
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !Ltk( T, skT, 'terminal' ) ▶₂ #i )
+    case Generate_terminal_key_pair
+    solve( splitEqs(0) )
+      case split_case_2
+      solve( !KU( cert(x, sign(<x, $A, 'terminal'>, ca_sk), $A) ) @ #vk.1 )
+        case CA_Sign_ltk
+        solve( !KU( senc(<cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1>,
+                         kdf(<'TENC', r1>, z))
+               ) @ #vk.11 )
+          case c_senc
+          solve( !KU( mac(<'CA', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                           cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1, cip>,
+                          kdf(<'TMAC', r1>, z))
+                 ) @ #vk.15 )
+            case c_mac
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                             cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1, cip>,
+                            kKDF)
+                   ) @ #vk.18 )
+              case c_kdf
+              solve( !KU( encaps(z, pk(~ltk.1)) ) @ #vk.16 )
+                case c_encaps
+                solve( !KU( cert(x, sign(<x, C, 'chip'>, ca_sk), C) ) @ #vk.25 )
+                  case CA_Sign_ltk
+                  solve( !KU( kdf(<'TCNF', r1>, z) ) @ #vk.19 )
+                    case c_kdf
+                    solve( !KU( kdf(<'TENC', r1>, z) ) @ #vk.26 )
+                      case c_kdf
+                      solve( !KU( kdf(<'TMAC', r1>, z) ) @ #vk.29 )
+                        case c_kdf
+                        solve( !KU( pk(~ltk.1) ) @ #vk.34 )
+                          case CA_Sign_ltk
+                          SOLVED // trace found
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case CA_FINISH_C
+  solve( CAInitC( <$C, iid>, certT, id_c, r1, <kTA, cTA>, kTMAC, kTENC, r2
+         ) ▶₁ #i )
+    case CA_INIT_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( CAInitT( <$T, iid.1>, id_c.1, kTMAC, kTENC,
+                          cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case CA_INIT_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk )
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.38 )
+                    case CA_INIT_T
+                    solve( !KU( ~r2 ) @ #vk.42 )
+                      case CA_INIT_C
+                      solve( !KU( ~ltk ) @ #vk.43 )
+                        case Corrupt_ltk
+                        solve( !KU( mac(<'CA', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk))>,
+                                        kdf(<'TMAC', ~r1>, ~kTA))
+                               ) @ #vk.11 )
+                          case CA_INIT_T
+                          solve( !KU( senc(<
+                                            cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2>,
+                                           kdf(<'TENC', ~r1>, ~kTA))
+                                 ) @ #vk.35 )
+                            case CA_INIT_C
+                            solve( !KU( encaps(~kTA, pk(~skT)) ) @ #vk.40 )
+                              case TA_CHALLENGE_C
+                              solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.44 )
+                                case c_kdf
+                                solve( !KU( ~kTA ) @ #vk.46 )
+                                  case TA_CHALLENGE_C
+                                  solve( !KU( ~skT ) @ #vk.48 )
+                                    case Corrupt_ltk
+                                    solve( !KU( ~r1 ) @ #vk.43 )
+                                      case TA_CHALLENGE_C
+                                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.29 )
+                                        case TA_RESPONSE_T
+                                        solve( !KU( encaps(~kTA, pk(~skT.1)) ) @ #vk.53 )
+                                          case TA_CHALLENGE_C
+                                          solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                           $T)
+                                                 ) @ #vk.33 )
+                                            case CA_Sign_ltk
+                                            solve( !KU( kdf(<'CNF', 
+                                                             cert(pk(~skT),
+                                                                  sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                                  $T), 
+                                                             cert(pk(~ltk),
+                                                                  sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                             ~r2, encaps(~k, pk(~ltk))>,
+                                                            ~k)
+                                                   ) @ #vk.36 )
+                                              case CA_FINISH_C
+                                              solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.25 )
+                                                case CA_INIT_T
+                                                solve( !KU( cert(pk(~ltk),
+                                                                 sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                                       ) @ #vk.48 )
+                                                  case CA_Sign_ltk
+                                                  SOLVED // trace found
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 376.55s
+  
+  session_exist (exists-trace): verified (27 steps)
+  two_session_exist (exists-trace): verified (51 steps)
+  weak_agreement_C (all-traces): verified (8 steps)
+  weak_agreement_T (all-traces): verified (74 steps)
+  agreement_C (all-traces): verified (22 steps)
+  agreement_T (all-traces): verified (74 steps)
+  aliveness (all-traces): verified (75 steps)
+  session_uniqueness (all-traces): verified (37 steps)
+  consistency (all-traces): verified (42 steps)
+  key_secrecy (all-traces): verified (21 steps)
+  chip_hiding (all-traces): verified (4 steps)
+  nonRepudiation_terminal (exists-trace): verified (15 steps)
+  nonRepudiation_chip (exists-trace): verified (15 steps)
+  pfs (all-traces): falsified - found trace (27 steps)
+
+==============================================================================
diff --git a/results/45991794.err.ALL_FastKemPQEAC_TAMARIN b/results/45991794.err.ALL_FastKemPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..e8b69d9cbe3f08bce37f20bdff07736861fc19fc
--- /dev/null
+++ b/results/45991794.err.ALL_FastKemPQEAC_TAMARIN
@@ -0,0 +1,28 @@
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+[Saturating Sources] Step 1/5
+[Saturating Sources] Step 2/5
+WARNING: you should run this program as super-user.
+WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
diff --git a/results/45991794.out.ALL_FastKemPQEAC_TAMARIN b/results/45991794.out.ALL_FastKemPQEAC_TAMARIN
new file mode 100644
index 0000000000000000000000000000000000000000..8fda0364a53474736ac31acde640d50cd03d06cb
--- /dev/null
+++ b/results/45991794.out.ALL_FastKemPQEAC_TAMARIN
@@ -0,0 +1,4080 @@
+maude tool: 'maude'
+ checking version: 3.3.1. OK.
+ checking installation: OK.
+theory FastKemPQEAC begin
+
+// Function signature and definition of the equational theory E
+
+functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
+           cert_sig/1, decaps/2, encaps/2, fst/1, kdf/2, mac/2, pair/2, pk/1,
+           sdec/2, senc/2, sign/2, snd/1, true/0, verify/3
+equations:
+    cert_id(cert(pk, s, id)) = id,
+    cert_pk(cert(pk, s, id)) = pk,
+    cert_sig(cert(pk, s, id)) = s,
+    decaps(encaps(k, pk(sk)), sk) = k,
+    fst(<x.1, x.2>) = x.1,
+    sdec(senc(x.1, x.2), x.2) = x.1,
+    snd(<x.1, x.2>) = x.2,
+    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
+
+
+
+
+
+
+
+
+
+macros:
+    verify_cert( cert,
+                 role ) = verify(cert_sig(cert),pair(cert_pk(cert),pair(cert_id(cert),role)),pk(ca_sk))
+
+rule (modulo E) Publish_ca_pk:
+   [ ] --> [ Out( pk(ca_sk) ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_chip_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [ !Pk( $A, pk(~ltk), 'chip' ), !Ltk( $A, ~ltk, 'chip' ), Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Generate_terminal_key_pair:
+   [ Fr( ~ltk ) ]
+  -->
+   [
+   !Pk( $A, pk(~ltk), 'terminal' ), !Ltk( $A, ~ltk, 'terminal' ),
+   Out( pk(~ltk) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) CA_Sign_ltk:
+   [ !Pk( A, pk, role ) ]
+  --[ RegisteredRole( A, role ) ]->
+   [
+   !Cert( A, cert(pk, sign(<pk, A, role>, ca_sk), A), role ),
+   Out( cert(pk, sign(<pk, A, role>, ca_sk), A) )
+   ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Corrupt_ltk:
+   [ !Ltk( $A, ltk, role ) ] --[ Corrupted( $A ) ]-> [ Out( <ltk, role> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) Reveal_session:
+   [ !SessionReveal( sid, k ) ] --[ Revealed( sid ) ]-> [ Out( k ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_INIT_T:
+   [ !Cert( $T, certT, 'terminal' ), Fr( ~iid ) ]
+  --[ Started( ) ]->
+   [ Out( <certT, '1', 't'> ), Out( ~iid ), TAInitT( <$T, ~iid> ) ]
+
+  /* has exactly the trivial AC variant */
+
+rule (modulo E) TA_CHALLENGE_C:
+   [
+   In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~kTA ), Fr( ~r2 ),
+   Fr( ~iid ), !Cert( $C, certC, 'chip' )
+   ]
+  --[ Eq( verify_cert(certT, 'terminal'), true ), Started( ) ]->
+   [
+   Out( <~id_c, ~r1, encaps(~kTA, cert_pk(certT)), 
+         senc(<certC, ~r2>, kdf(<'TENC', ~r1>, ~kTA)), '2', 'c'>
+   ),
+   Out( senc(~iid, kdf(<'TENC', ~r1>, ~kTA)) ),
+   TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~r2,
+                 kdf(<'TMAC', ~r1>, ~kTA), kdf(<'TCNF', ~r1>, ~kTA)
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_CHALLENGE_C:
+     [
+     In( <certT, '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ), Fr( ~kTA ), Fr( ~r2 ),
+     Fr( ~iid ), !Cert( $C, certC, 'chip' )
+     ]
+    --[ Eq( z.1, true ), Started( ) ]->
+     [
+     Out( <~id_c, ~r1, encaps(~kTA, z), 
+           senc(<certC, ~r2>, kdf(<'TENC', ~r1>, ~kTA)), '2', 'c'>
+     ),
+     Out( senc(~iid, kdf(<'TENC', ~r1>, ~kTA)) ),
+     TAChallengeC( <$C, ~iid>, certT, ~id_c, ~r1, ~r2,
+                   kdf(<'TMAC', ~r1>, ~kTA), kdf(<'TCNF', ~r1>, ~kTA)
+     )
+     ]
+    variants (modulo AC)
+    1. certT = certT.20
+       z     = cert_pk(certT.20)
+       z.1   = verify(cert_sig(certT.20),
+                      <cert_pk(certT.20), cert_id(certT.20), 'terminal'>, pk(ca_sk))
+    
+    2. certT = cert(z.70, sign(<z.70, x.127, 'terminal'>, ca_sk), x.127)
+       z     = z.70
+       z.1   = true
+    
+    3. certT = cert(z.71, x.128, x.129)
+       z     = z.71
+       z.1   = verify(x.128, <z.71, x.129, 'terminal'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_RESPONSE_T:
+   [
+   In( <id_c, r1, cTA, cCA, '2', 'c'> ), Fr( ~k ), TAInitT( <$T, iid> ),
+   !Ltk( $T, ~skT, 'terminal' ), !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))),
+                  'chip'),
+      true
+  )
+  ]->
+   [
+   Out( <kdf(<'TCNF', r1>, decaps(cTA, ~skT)), 
+         encaps(~k,
+                cert_pk(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))))), 
+         mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))), 
+              snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))), 
+              encaps(~k, cert_pk(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT))))))
+             >,
+             kdf(<'TMAC', r1>, decaps(cTA, ~skT))), 
+         '3', 't'>
+   ),
+   TAResponseT( <$T, iid>, id_c,
+                fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))),
+                snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT)))),
+                <~k, 
+                 encaps(~k, cert_pk(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, ~skT))))))
+                >
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_RESPONSE_T:
+     [
+     In( <id_c, r1, cTA, cCA, '2', 'c'> ), Fr( ~k ), TAInitT( <$T, iid> ),
+     !Ltk( $T, ~skT, 'terminal' ), !Cert( $T, certT, 'terminal' )
+     ]
+    --[ Eq( z.4, true ) ]->
+     [
+     Out( <kdf(<'TCNF', r1>, z), encaps(~k, z.1), 
+           mac(<'CA', certT, z.2, z.3, encaps(~k, z.1)>, kdf(<'TMAC', r1>, z)), 
+           '3', 't'>
+     ),
+     TAResponseT( <$T, iid>, id_c, z.2, z.3, <~k, encaps(~k, z.1)> )
+     ]
+    variants (modulo AC)
+     1. ~skT  = ~skT.30
+        cCA   = cCA.31
+        cTA   = cTA.32
+        r1    = r1.36
+        z     = decaps(cTA.32, ~skT.30)
+        z.1   = cert_pk(fst(sdec(cCA.31,
+                                 kdf(<'TENC', r1.36>, decaps(cTA.32, ~skT.30)))))
+        z.2   = fst(sdec(cCA.31, kdf(<'TENC', r1.36>, decaps(cTA.32, ~skT.30))))
+        z.3   = snd(sdec(cCA.31, kdf(<'TENC', r1.36>, decaps(cTA.32, ~skT.30))))
+        z.4   = verify(cert_sig(fst(sdec(cCA.31,
+                                         kdf(<'TENC', r1.36>, decaps(cTA.32, ~skT.30))))),
+                       <
+                        cert_pk(fst(sdec(cCA.31,
+                                         kdf(<'TENC', r1.36>, decaps(cTA.32, ~skT.30))))), 
+                        cert_id(fst(sdec(cCA.31,
+                                         kdf(<'TENC', r1.36>, decaps(cTA.32, ~skT.30))))), 
+                        'chip'>,
+                       pk(ca_sk))
+    
+     2. ~skT  = ~skT.35
+        cCA   = cCA.36
+        cTA   = encaps(z.46, pk(~skT.35))
+        r1    = r1.41
+        z     = z.46
+        z.1   = cert_pk(fst(sdec(cCA.36, kdf(<'TENC', r1.41>, z.46))))
+        z.2   = fst(sdec(cCA.36, kdf(<'TENC', r1.41>, z.46)))
+        z.3   = snd(sdec(cCA.36, kdf(<'TENC', r1.41>, z.46)))
+        z.4   = verify(cert_sig(fst(sdec(cCA.36, kdf(<'TENC', r1.41>, z.46)))),
+                       <cert_pk(fst(sdec(cCA.36, kdf(<'TENC', r1.41>, z.46)))), 
+                        cert_id(fst(sdec(cCA.36, kdf(<'TENC', r1.41>, z.46)))), 'chip'>,
+                       pk(ca_sk))
+    
+     3. ~skT  = ~skT.39
+        cCA   = senc(<z.53, z.54>, kdf(<'TENC', r1.45>, z.50))
+        cTA   = encaps(z.50, pk(~skT.39))
+        r1    = r1.45
+        z     = z.50
+        z.1   = cert_pk(z.53)
+        z.2   = z.53
+        z.3   = z.54
+        z.4   = verify(cert_sig(z.53), <cert_pk(z.53), cert_id(z.53), 'chip'>,
+                       pk(ca_sk))
+    
+     4. ~skT  = ~skT.39
+        cCA   = senc(<z.53, z.54>, kdf(<'TENC', r1.45>, decaps(cTA.41, ~skT.39)))
+        cTA   = cTA.41
+        r1    = r1.45
+        z     = decaps(cTA.41, ~skT.39)
+        z.1   = cert_pk(z.53)
+        z.2   = z.53
+        z.3   = z.54
+        z.4   = verify(cert_sig(z.53), <cert_pk(z.53), cert_id(z.53), 'chip'>,
+                       pk(ca_sk))
+    
+     5. ~skT  = ~skT.165
+        cCA   = senc(x.326, kdf(<'TENC', r1.171>, z.176))
+        cTA   = encaps(z.176, pk(~skT.165))
+        r1    = r1.171
+        z     = z.176
+        z.1   = cert_pk(fst(x.326))
+        z.2   = fst(x.326)
+        z.3   = snd(x.326)
+        z.4   = verify(cert_sig(fst(x.326)),
+                       <cert_pk(fst(x.326)), cert_id(fst(x.326)), 'chip'>, pk(ca_sk))
+    
+     6. ~skT  = ~skT.165
+        cCA   = senc(x.326, kdf(<'TENC', r1.171>, decaps(cTA.167, ~skT.165)))
+        cTA   = cTA.167
+        r1    = r1.171
+        z     = decaps(cTA.167, ~skT.165)
+        z.1   = cert_pk(fst(x.326))
+        z.2   = fst(x.326)
+        z.3   = snd(x.326)
+        z.4   = verify(cert_sig(fst(x.326)),
+                       <cert_pk(fst(x.326)), cert_id(fst(x.326)), 'chip'>, pk(ca_sk))
+    
+     7. ~skT  = ~skT.166
+        cCA   = senc(<cert(z.178, sign(<z.178, x.328, 'chip'>, ca_sk), x.328), 
+                      z.181>,
+                     kdf(<'TENC', r1.172>, z.177))
+        cTA   = encaps(z.177, pk(~skT.166))
+        r1    = r1.172
+        z     = z.177
+        z.1   = z.178
+        z.2   = cert(z.178, sign(<z.178, x.328, 'chip'>, ca_sk), x.328)
+        z.3   = z.181
+        z.4   = true
+    
+     8. ~skT  = ~skT.166
+        cCA   = senc(<cert(z.178, sign(<z.178, x.328, 'chip'>, ca_sk), x.328), 
+                      z.181>,
+                     kdf(<'TENC', r1.172>, decaps(cTA.168, ~skT.166)))
+        cTA   = cTA.168
+        r1    = r1.172
+        z     = decaps(cTA.168, ~skT.166)
+        z.1   = z.178
+        z.2   = cert(z.178, sign(<z.178, x.328, 'chip'>, ca_sk), x.328)
+        z.3   = z.181
+        z.4   = true
+    
+     9. ~skT  = ~skT.167
+        cCA   = senc(<cert(z.179, x.329, x.330), z.182>,
+                     kdf(<'TENC', r1.173>, z.178))
+        cTA   = encaps(z.178, pk(~skT.167))
+        r1    = r1.173
+        z     = z.178
+        z.1   = z.179
+        z.2   = cert(z.179, x.329, x.330)
+        z.3   = z.182
+        z.4   = verify(x.329, <z.179, x.330, 'chip'>, pk(ca_sk))
+    
+    10. ~skT  = ~skT.167
+        cCA   = senc(<cert(z.179, x.329, x.330), z.182>,
+                     kdf(<'TENC', r1.173>, decaps(cTA.169, ~skT.167)))
+        cTA   = cTA.169
+        r1    = r1.173
+        z     = decaps(cTA.169, ~skT.167)
+        z.1   = z.179
+        z.2   = cert(z.179, x.329, x.330)
+        z.3   = z.182
+        z.4   = verify(x.329, <z.179, x.330, 'chip'>, pk(ca_sk))
+  */
+
+rule (modulo E) TA_COMPLETE_C:
+   [
+   In( <kTCNF_T, cip, s, '3', 't'> ),
+   TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF ),
+   !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+   ]
+  --[
+  Eq( kTCNF_T, kTCNF ), Eq( s, mac(<'CA', certT, certC, r2, cip>, kTMAC) ),
+  CompletedTA( $C, iid, cert_id(certT) ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, decaps(cip, ~skC)),
+             <certT, certC, r2, cip>, $C, 'chip', cert_id(certT)
+  ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, decaps(cip, ~skC)),
+             <certT, certC, r2, cip>, $C, 'chip', cert_id(certT)
+  )
+  ]->
+   [
+   Out( <kdf(<'CNF', certT, certC, r2, cip>, decaps(cip, ~skC)), '4', 'c'>
+   ),
+   TACompleteC( <$C, iid>,
+                kdf(<'KEY', certT, certC, r2, cip>, decaps(cip, ~skC))
+   )
+   ]
+
+  /*
+  rule (modulo AC) TA_COMPLETE_C:
+     [
+     In( <kTCNF_T, cip, s, '3', 't'> ),
+     TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF ),
+     !Ltk( $C, ~skC, 'chip' ), !Cert( $C, certC, 'chip' )
+     ]
+    --[
+    Eq( kTCNF_T, kTCNF ), Eq( s, mac(<'CA', certT, certC, r2, cip>, kTMAC) ),
+    CompletedTA( $C, iid, z.1 ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, z),
+               <certT, certC, r2, cip>, $C, 'chip', z.1
+    ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, z),
+               <certT, certC, r2, cip>, $C, 'chip', z.1
+    )
+    ]->
+     [
+     Out( <kdf(<'CNF', certT, certC, r2, cip>, z), '4', 'c'> ),
+     TACompleteC( <$C, iid>, kdf(<'KEY', certT, certC, r2, cip>, z) )
+     ]
+    variants (modulo AC)
+    1. ~skC  = ~skC.28
+       certT = certT.30
+       cip   = cip.31
+       z     = decaps(cip.31, ~skC.28)
+       z.1   = cert_id(certT.30)
+    
+    2. ~skC  = ~skC.41
+       certT = certT.43
+       cip   = encaps(z.57, pk(~skC.41))
+       z     = z.57
+       z.1   = cert_id(certT.43)
+    
+    3. ~skC  = ~skC.180
+       certT = cert(x.356, x.357, z.201)
+       cip   = cip.183
+       z     = decaps(cip.183, ~skC.180)
+       z.1   = z.201
+    
+    4. ~skC  = ~skC.182
+       certT = cert(x.360, x.361, z.203)
+       cip   = encaps(z.198, pk(~skC.182))
+       z     = z.198
+       z.1   = z.203
+  */
+
+rule (modulo E) CA_FINISH_T:
+   [
+   In( <kCNF_C, '4', 'c'> ),
+   TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ),
+   !Cert( $T, certT, 'terminal' )
+   ]
+  --[
+  Eq( kdf(<'CNF', certT, certC, r2, cip>, k), kCNF_C ),
+  Completed( kdf(<'KEY', certT, certC, r2, cip>, k),
+             <certT, certC, r2, cip>, $T, 'terminal', cert_id(certC)
+  ),
+  Finished( <certT, certC, r2, cip> )
+  ]->
+   [
+   CAFinishT( cert_id(certC), $T, kdf(<'KEY', certT, certC, r2, cip>, k) ),
+   !SessionReveal( <certT, certC, r2, cip>,
+                   kdf(<'KEY', certT, certC, r2, cip>, k)
+   )
+   ]
+
+  /*
+  rule (modulo AC) CA_FINISH_T:
+     [
+     In( <kCNF_C, '4', 'c'> ),
+     TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ),
+     !Cert( $T, certT, 'terminal' )
+     ]
+    --[
+    Eq( kdf(<'CNF', certT, certC, r2, cip>, k), kCNF_C ),
+    Completed( kdf(<'KEY', certT, certC, r2, cip>, k),
+               <certT, certC, r2, cip>, $T, 'terminal', z
+    ),
+    Finished( <certT, certC, r2, cip> )
+    ]->
+     [
+     CAFinishT( z, $T, kdf(<'KEY', certT, certC, r2, cip>, k) ),
+     !SessionReveal( <certT, certC, r2, cip>,
+                     kdf(<'KEY', certT, certC, r2, cip>, k)
+     )
+     ]
+    variants (modulo AC)
+    1. certC = certC.15
+       z     = cert_id(certC.15)
+    
+    2. certC = cert(x.41, x.42, z.28)
+       z     = z.28
+  */
+
+rule (modulo E) Verify_Transcript_C:
+   [
+   In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, kCNF> ), In( kTA ),
+   !Ltk( C, skC, 'chip' )
+   ]
+  --[
+  Eq( C, cert_id(fst(sdec(cCA, kdf(<'TENC', r1>, kTA)))) ),
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 'chip'), true ),
+  Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( kTCNF, kdf(<'TCNF', r1>, kTA) ),
+  Eq( s,
+      mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, kTA))), cip>,
+          kdf(<'TMAC', r1>, kTA))
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, fst(sdec(cCA, kdf(<'TENC', r1>, kTA))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, kTA))), cip>,
+          decaps(cip, skC))
+  ),
+  ValidTrans( C, 'chip', cert_id(certT) )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_C:
+     [
+     In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, kCNF> ), In( kTA ),
+     !Ltk( C, skC, 'chip' )
+     ]
+    --[
+    Eq( C, z ), Eq( z.1, true ), Eq( z.2, true ),
+    Eq( kTCNF, kdf(<'TCNF', r1>, kTA) ),
+    Eq( s, mac(<'CA', certT, z.3, z.4, cip>, kdf(<'TMAC', r1>, kTA)) ),
+    Eq( kCNF, kdf(<'CNF', certT, z.3, z.4, cip>, z.5) ),
+    ValidTrans( C, 'chip', z.6 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. cCA   = cCA.35
+        certT = certT.37
+        cip   = cip.38
+        kTA   = kTA.40
+        r1    = r1.42
+        skC   = skC.44
+        z     = cert_id(fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))),
+                       <cert_pk(fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))), 
+                        cert_id(fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.37),
+                       <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))
+        z.4   = snd(sdec(cCA.35, kdf(<'TENC', r1.42>, kTA.40)))
+        z.5   = decaps(cip.38, skC.44)
+        z.6   = cert_id(certT.37)
+    
+     2. cCA   = cCA.46
+        certT = certT.48
+        cip   = encaps(z.66, pk(skC.55))
+        kTA   = kTA.51
+        r1    = r1.53
+        skC   = skC.55
+        z     = cert_id(fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))),
+                       <cert_pk(fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))), 
+                        cert_id(fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.48),
+                       <cert_pk(certT.48), cert_id(certT.48), 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))
+        z.4   = snd(sdec(cCA.46, kdf(<'TENC', r1.53>, kTA.51)))
+        z.5   = z.66
+        z.6   = cert_id(certT.48)
+    
+     3. cCA   = cCA.114
+        certT = cert(x.224, sign(<x.224, z.135, 'terminal'>, ca_sk), z.135)
+        cip   = cip.117
+        kTA   = kTA.119
+        r1    = r1.121
+        skC   = skC.123
+        z     = cert_id(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, kTA.119)))),
+                       <cert_pk(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))), 
+                        cert_id(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))
+        z.4   = snd(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))
+        z.5   = decaps(cip.117, skC.123)
+        z.6   = z.135
+    
+     4. cCA   = cCA.114
+        certT = cert(x.224, sign(<x.224, z.135, 'terminal'>, ca_sk), z.135)
+        cip   = encaps(z.134, pk(skC.123))
+        kTA   = kTA.119
+        r1    = r1.121
+        skC   = skC.123
+        z     = cert_id(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, kTA.119)))),
+                       <cert_pk(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))), 
+                        cert_id(fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = fst(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))
+        z.4   = snd(sdec(cCA.114, kdf(<'TENC', r1.121>, kTA.119)))
+        z.5   = z.134
+        z.6   = z.135
+    
+     5. cCA   = cCA.115
+        certT = cert(x.225, x.226, z.136)
+        cip   = cip.118
+        kTA   = kTA.120
+        r1    = r1.122
+        skC   = skC.124
+        z     = cert_id(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, kTA.120)))),
+                       <cert_pk(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))), 
+                        cert_id(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.226, <x.225, z.136, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))
+        z.4   = snd(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))
+        z.5   = decaps(cip.118, skC.124)
+        z.6   = z.136
+    
+     6. cCA   = cCA.115
+        certT = cert(x.225, x.226, z.136)
+        cip   = encaps(z.135, pk(skC.124))
+        kTA   = kTA.120
+        r1    = r1.122
+        skC   = skC.124
+        z     = cert_id(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120))))
+        z.1   = verify(cert_sig(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, kTA.120)))),
+                       <cert_pk(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))), 
+                        cert_id(fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.226, <x.225, z.136, 'terminal'>, pk(ca_sk))
+        z.3   = fst(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))
+        z.4   = snd(sdec(cCA.115, kdf(<'TENC', r1.122>, kTA.120)))
+        z.5   = z.135
+        z.6   = z.136
+    
+     7. cCA   = senc(x.183, kdf(<'TENC', r1.100>, kTA.98))
+        certT = cert(x.187, sign(<x.187, z.114, 'terminal'>, ca_sk), z.114)
+        cip   = encaps(z.113, pk(skC.102))
+        kTA   = kTA.98
+        r1    = r1.100
+        skC   = skC.102
+        z     = cert_id(fst(x.183))
+        z.1   = verify(cert_sig(fst(x.183)),
+                       <cert_pk(fst(x.183)), cert_id(fst(x.183)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.183)
+        z.4   = snd(x.183)
+        z.5   = z.113
+        z.6   = z.114
+    
+     8. cCA   = senc(x.184, kdf(<'TENC', r1.101>, kTA.99))
+        certT = cert(x.188, x.189, z.115)
+        cip   = encaps(z.114, pk(skC.103))
+        kTA   = kTA.99
+        r1    = r1.101
+        skC   = skC.103
+        z     = cert_id(fst(x.184))
+        z.1   = verify(cert_sig(fst(x.184)),
+                       <cert_pk(fst(x.184)), cert_id(fst(x.184)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.189, <x.188, z.115, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.184)
+        z.4   = snd(x.184)
+        z.5   = z.114
+        z.6   = z.115
+    
+     9. cCA   = senc(x.201, kdf(<'TENC', r1.110>, kTA.108))
+        certT = cert(x.205, sign(<x.205, z.124, 'terminal'>, ca_sk), z.124)
+        cip   = cip.106
+        kTA   = kTA.108
+        r1    = r1.110
+        skC   = skC.112
+        z     = cert_id(fst(x.201))
+        z.1   = verify(cert_sig(fst(x.201)),
+                       <cert_pk(fst(x.201)), cert_id(fst(x.201)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = fst(x.201)
+        z.4   = snd(x.201)
+        z.5   = decaps(cip.106, skC.112)
+        z.6   = z.124
+    
+    10. cCA   = senc(x.202, kdf(<'TENC', r1.111>, kTA.109))
+        certT = cert(x.206, x.207, z.125)
+        cip   = cip.107
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = cert_id(fst(x.202))
+        z.1   = verify(cert_sig(fst(x.202)),
+                       <cert_pk(fst(x.202)), cert_id(fst(x.202)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.207, <x.206, z.125, 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.202)
+        z.4   = snd(x.202)
+        z.5   = decaps(cip.107, skC.113)
+        z.6   = z.125
+    
+    11. cCA   = senc(x.206, kdf(<'TENC', r1.111>, kTA.109))
+        certT = certT.106
+        cip   = cip.107
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = cert_id(fst(x.206))
+        z.1   = verify(cert_sig(fst(x.206)),
+                       <cert_pk(fst(x.206)), cert_id(fst(x.206)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.206)
+        z.4   = snd(x.206)
+        z.5   = decaps(cip.107, skC.113)
+        z.6   = cert_id(certT.106)
+    
+    12. cCA   = senc(x.206, kdf(<'TENC', r1.111>, kTA.109))
+        certT = certT.106
+        cip   = encaps(z.124, pk(skC.113))
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = cert_id(fst(x.206))
+        z.1   = verify(cert_sig(fst(x.206)),
+                       <cert_pk(fst(x.206)), cert_id(fst(x.206)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = fst(x.206)
+        z.4   = snd(x.206)
+        z.5   = z.124
+        z.6   = cert_id(certT.106)
+    
+    13. cCA   = senc(<z.55, z.56>, kdf(<'TENC', r1.46>, kTA.44))
+        certT = certT.41
+        cip   = cip.42
+        kTA   = kTA.44
+        r1    = r1.46
+        skC   = skC.48
+        z     = cert_id(z.55)
+        z.1   = verify(cert_sig(z.55), <cert_pk(z.55), cert_id(z.55), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.41),
+                       <cert_pk(certT.41), cert_id(certT.41), 'terminal'>, pk(ca_sk))
+        z.3   = z.55
+        z.4   = z.56
+        z.5   = decaps(cip.42, skC.48)
+        z.6   = cert_id(certT.41)
+    
+    14. cCA   = senc(<z.58, z.59>, kdf(<'TENC', r1.49>, kTA.47))
+        certT = certT.44
+        cip   = encaps(z.62, pk(skC.51))
+        kTA   = kTA.47
+        r1    = r1.49
+        skC   = skC.51
+        z     = cert_id(z.58)
+        z.1   = verify(cert_sig(z.58), <cert_pk(z.58), cert_id(z.58), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.44),
+                       <cert_pk(certT.44), cert_id(certT.44), 'terminal'>, pk(ca_sk))
+        z.3   = z.58
+        z.4   = z.59
+        z.5   = z.62
+        z.6   = cert_id(certT.44)
+    
+    15. cCA   = senc(<z.110, z.111>, kdf(<'TENC', r1.101>, kTA.99))
+        certT = cert(x.189, sign(<x.189, z.115, 'terminal'>, ca_sk), z.115)
+        cip   = encaps(z.114, pk(skC.103))
+        kTA   = kTA.99
+        r1    = r1.101
+        skC   = skC.103
+        z     = cert_id(z.110)
+        z.1   = verify(cert_sig(z.110), <cert_pk(z.110), cert_id(z.110), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.110
+        z.4   = z.111
+        z.5   = z.114
+        z.6   = z.115
+    
+    16. cCA   = senc(<z.111, z.112>, kdf(<'TENC', r1.102>, kTA.100))
+        certT = cert(x.190, x.191, z.116)
+        cip   = encaps(z.115, pk(skC.104))
+        kTA   = kTA.100
+        r1    = r1.102
+        skC   = skC.104
+        z     = cert_id(z.111)
+        z.1   = verify(cert_sig(z.111), <cert_pk(z.111), cert_id(z.111), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.191, <x.190, z.116, 'terminal'>, pk(ca_sk))
+        z.3   = z.111
+        z.4   = z.112
+        z.5   = z.115
+        z.6   = z.116
+    
+    17. cCA   = senc(<z.120, z.121>, kdf(<'TENC', r1.111>, kTA.109))
+        certT = cert(x.207, sign(<x.207, z.125, 'terminal'>, ca_sk), z.125)
+        cip   = cip.107
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = cert_id(z.120)
+        z.1   = verify(cert_sig(z.120), <cert_pk(z.120), cert_id(z.120), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.120
+        z.4   = z.121
+        z.5   = decaps(cip.107, skC.113)
+        z.6   = z.125
+    
+    18. cCA   = senc(<z.121, z.122>, kdf(<'TENC', r1.112>, kTA.110))
+        certT = cert(x.208, x.209, z.126)
+        cip   = cip.108
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        z     = cert_id(z.121)
+        z.1   = verify(cert_sig(z.121), <cert_pk(z.121), cert_id(z.121), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.209, <x.208, z.126, 'terminal'>, pk(ca_sk))
+        z.3   = z.121
+        z.4   = z.122
+        z.5   = decaps(cip.108, skC.114)
+        z.6   = z.126
+    
+    19. cCA   = senc(<
+                      cert(x.185, sign(<x.185, z.106, 'chip'>, ca_sk), z.106), z.112>,
+                     kdf(<'TENC', r1.102>, kTA.100))
+        certT = cert(x.191, sign(<x.191, z.116, 'terminal'>, ca_sk), z.116)
+        cip   = encaps(z.115, pk(skC.104))
+        kTA   = kTA.100
+        r1    = r1.102
+        skC   = skC.104
+        z     = z.106
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.185, sign(<x.185, z.106, 'chip'>, ca_sk), z.106)
+        z.4   = z.112
+        z.5   = z.115
+        z.6   = z.116
+    
+    20. cCA   = senc(<cert(x.186, x.187, z.107), z.113>,
+                     kdf(<'TENC', r1.103>, kTA.101))
+        certT = cert(x.193, sign(<x.193, z.117, 'terminal'>, ca_sk), z.117)
+        cip   = encaps(z.116, pk(skC.105))
+        kTA   = kTA.101
+        r1    = r1.103
+        skC   = skC.105
+        z     = z.107
+        z.1   = verify(x.187, <x.186, z.107, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.186, x.187, z.107)
+        z.4   = z.113
+        z.5   = z.116
+        z.6   = z.117
+    
+    21. cCA   = senc(<
+                      cert(x.186, sign(<x.186, z.107, 'chip'>, ca_sk), z.107), z.113>,
+                     kdf(<'TENC', r1.103>, kTA.101))
+        certT = cert(x.192, x.193, z.117)
+        cip   = encaps(z.116, pk(skC.105))
+        kTA   = kTA.101
+        r1    = r1.103
+        skC   = skC.105
+        z     = z.107
+        z.1   = true
+        z.2   = verify(x.193, <x.192, z.117, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.186, sign(<x.186, z.107, 'chip'>, ca_sk), z.107)
+        z.4   = z.113
+        z.5   = z.116
+        z.6   = z.117
+    
+    22. cCA   = senc(<cert(x.187, x.188, z.108), z.114>,
+                     kdf(<'TENC', r1.104>, kTA.102))
+        certT = cert(x.194, x.195, z.118)
+        cip   = encaps(z.117, pk(skC.106))
+        kTA   = kTA.102
+        r1    = r1.104
+        skC   = skC.106
+        z     = z.108
+        z.1   = verify(x.188, <x.187, z.108, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.195, <x.194, z.118, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.187, x.188, z.108)
+        z.4   = z.114
+        z.5   = z.117
+        z.6   = z.118
+    
+    23. cCA   = senc(<
+                      cert(x.203, sign(<x.203, z.116, 'chip'>, ca_sk), z.116), z.122>,
+                     kdf(<'TENC', r1.112>, kTA.110))
+        certT = cert(x.209, sign(<x.209, z.126, 'terminal'>, ca_sk), z.126)
+        cip   = cip.108
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        z     = z.116
+        z.1   = true
+        z.2   = true
+        z.3   = cert(x.203, sign(<x.203, z.116, 'chip'>, ca_sk), z.116)
+        z.4   = z.122
+        z.5   = decaps(cip.108, skC.114)
+        z.6   = z.126
+    
+    24. cCA   = senc(<cert(x.204, x.205, z.117), z.123>,
+                     kdf(<'TENC', r1.113>, kTA.111))
+        certT = cert(x.211, sign(<x.211, z.127, 'terminal'>, ca_sk), z.127)
+        cip   = cip.109
+        kTA   = kTA.111
+        r1    = r1.113
+        skC   = skC.115
+        z     = z.117
+        z.1   = verify(x.205, <x.204, z.117, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = cert(x.204, x.205, z.117)
+        z.4   = z.123
+        z.5   = decaps(cip.109, skC.115)
+        z.6   = z.127
+    
+    25. cCA   = senc(<
+                      cert(x.204, sign(<x.204, z.117, 'chip'>, ca_sk), z.117), z.123>,
+                     kdf(<'TENC', r1.113>, kTA.111))
+        certT = cert(x.210, x.211, z.127)
+        cip   = cip.109
+        kTA   = kTA.111
+        r1    = r1.113
+        skC   = skC.115
+        z     = z.117
+        z.1   = true
+        z.2   = verify(x.211, <x.210, z.127, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.204, sign(<x.204, z.117, 'chip'>, ca_sk), z.117)
+        z.4   = z.123
+        z.5   = decaps(cip.109, skC.115)
+        z.6   = z.127
+    
+    26. cCA   = senc(<cert(x.205, x.206, z.118), z.124>,
+                     kdf(<'TENC', r1.114>, kTA.112))
+        certT = cert(x.212, x.213, z.128)
+        cip   = cip.110
+        kTA   = kTA.112
+        r1    = r1.114
+        skC   = skC.116
+        z     = z.118
+        z.1   = verify(x.206, <x.205, z.118, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.213, <x.212, z.128, 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.205, x.206, z.118)
+        z.4   = z.124
+        z.5   = decaps(cip.110, skC.116)
+        z.6   = z.128
+    
+    27. cCA   = senc(<
+                      cert(x.206, sign(<x.206, z.115, 'chip'>, ca_sk), z.115), z.121>,
+                     kdf(<'TENC', r1.111>, kTA.109))
+        certT = certT.106
+        cip   = cip.107
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = z.115
+        z.1   = true
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.206, sign(<x.206, z.115, 'chip'>, ca_sk), z.115)
+        z.4   = z.121
+        z.5   = decaps(cip.107, skC.113)
+        z.6   = cert_id(certT.106)
+    
+    28. cCA   = senc(<
+                      cert(x.206, sign(<x.206, z.115, 'chip'>, ca_sk), z.115), z.121>,
+                     kdf(<'TENC', r1.111>, kTA.109))
+        certT = certT.106
+        cip   = encaps(z.124, pk(skC.113))
+        kTA   = kTA.109
+        r1    = r1.111
+        skC   = skC.113
+        z     = z.115
+        z.1   = true
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.206, sign(<x.206, z.115, 'chip'>, ca_sk), z.115)
+        z.4   = z.121
+        z.5   = z.124
+        z.6   = cert_id(certT.106)
+    
+    29. cCA   = senc(<cert(x.207, x.208, z.116), z.122>,
+                     kdf(<'TENC', r1.112>, kTA.110))
+        certT = certT.107
+        cip   = cip.108
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        z     = z.116
+        z.1   = verify(x.208, <x.207, z.116, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.107),
+                       <cert_pk(certT.107), cert_id(certT.107), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.207, x.208, z.116)
+        z.4   = z.122
+        z.5   = decaps(cip.108, skC.114)
+        z.6   = cert_id(certT.107)
+    
+    30. cCA   = senc(<cert(x.207, x.208, z.116), z.122>,
+                     kdf(<'TENC', r1.112>, kTA.110))
+        certT = certT.107
+        cip   = encaps(z.125, pk(skC.114))
+        kTA   = kTA.110
+        r1    = r1.112
+        skC   = skC.114
+        z     = z.116
+        z.1   = verify(x.208, <x.207, z.116, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.107),
+                       <cert_pk(certT.107), cert_id(certT.107), 'terminal'>, pk(ca_sk))
+        z.3   = cert(x.207, x.208, z.116)
+        z.4   = z.122
+        z.5   = z.125
+        z.6   = cert_id(certT.107)
+  */
+
+rule (modulo E) Verify_Transcript_T:
+   [
+   In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, kCNF> ), In( kKDF ),
+   !Ltk( T, skT, 'terminal' )
+   ]
+  --[
+  Eq( T, cert_id(certT) ),
+  Eq( verify_cert(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))),
+                  'chip'),
+      true
+  ),
+  Eq( verify_cert(certT, 'terminal'), true ),
+  Eq( kTCNF, kdf(<'TCNF', r1>, decaps(cTA, skT)) ),
+  Eq( s,
+      mac(<'CA', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), cip>,
+          kdf(<'TMAC', r1>, decaps(cTA, skT)))
+  ),
+  Eq( kCNF,
+      kdf(<'CNF', certT, fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), 
+           snd(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))), cip>,
+          kKDF)
+  ),
+  ValidTrans( T, 'terminal',
+              cert_id(fst(sdec(cCA, kdf(<'TENC', r1>, decaps(cTA, skT)))))
+  )
+  ]->
+   [ ]
+
+  /*
+  rule (modulo AC) Verify_Transcript_T:
+     [
+     In( <certT, IDc, r1, cTA, kTCNF, cCA, cip, s, kCNF> ), In( kKDF ),
+     !Ltk( T, skT, 'terminal' )
+     ]
+    --[
+    Eq( T, z ), Eq( z.1, true ), Eq( z.2, true ),
+    Eq( kTCNF, kdf(<'TCNF', r1>, z.3) ),
+    Eq( s, mac(<'CA', certT, z.4, z.5, cip>, kdf(<'TMAC', r1>, z.3)) ),
+    Eq( kCNF, kdf(<'CNF', certT, z.4, z.5, cip>, kKDF) ),
+    ValidTrans( T, 'terminal', z.6 )
+    ]->
+     [ ]
+    variants (modulo AC)
+     1. cCA   = cCA.35
+        cTA   = cTA.36
+        certT = certT.37
+        r1    = r1.42
+        skT   = skT.44
+        z     = cert_id(certT.37)
+        z.1   = verify(cert_sig(fst(sdec(cCA.35,
+                                         kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))),
+                       <
+                        cert_pk(fst(sdec(cCA.35,
+                                         kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))), 
+                        cert_id(fst(sdec(cCA.35,
+                                         kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.37),
+                       <cert_pk(certT.37), cert_id(certT.37), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.36, skT.44)
+        z.4   = fst(sdec(cCA.35, kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))
+        z.5   = snd(sdec(cCA.35, kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44))))
+        z.6   = cert_id(fst(sdec(cCA.35,
+                                 kdf(<'TENC', r1.42>, decaps(cTA.36, skT.44)))))
+    
+     2. cCA   = cCA.41
+        cTA   = encaps(z.56, pk(skT.50))
+        certT = certT.43
+        r1    = r1.48
+        skT   = skT.50
+        z     = cert_id(certT.43)
+        z.1   = verify(cert_sig(fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))),
+                       <cert_pk(fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))), 
+                        cert_id(fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.43),
+                       <cert_pk(certT.43), cert_id(certT.43), 'terminal'>, pk(ca_sk))
+        z.3   = z.56
+        z.4   = fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))
+        z.5   = snd(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56)))
+        z.6   = cert_id(fst(sdec(cCA.41, kdf(<'TENC', r1.48>, z.56))))
+    
+     3. cCA   = cCA.114
+        cTA   = cTA.115
+        certT = cert(x.224, sign(<x.224, z.125, 'terminal'>, ca_sk), z.125)
+        r1    = r1.121
+        skT   = skT.123
+        z     = z.125
+        z.1   = verify(cert_sig(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))),
+                       <
+                        cert_pk(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))), 
+                        cert_id(fst(sdec(cCA.114,
+                                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.115, skT.123)
+        z.4   = fst(sdec(cCA.114,
+                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))
+        z.5   = snd(sdec(cCA.114,
+                         kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123))))
+        z.6   = cert_id(fst(sdec(cCA.114,
+                                 kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123)))))
+    
+     4. cCA   = cCA.115
+        cTA   = cTA.116
+        certT = cert(x.225, x.226, z.126)
+        r1    = r1.122
+        skT   = skT.124
+        z     = z.126
+        z.1   = verify(cert_sig(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))),
+                       <
+                        cert_pk(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))), 
+                        cert_id(fst(sdec(cCA.115,
+                                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))), 
+                        'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.226, <x.225, z.126, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.116, skT.124)
+        z.4   = fst(sdec(cCA.115,
+                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))
+        z.5   = snd(sdec(cCA.115,
+                         kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124))))
+        z.6   = cert_id(fst(sdec(cCA.115,
+                                 kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124)))))
+    
+     5. cCA   = cCA.116
+        cTA   = encaps(z.131, pk(skT.125))
+        certT = cert(x.228, sign(<x.228, z.127, 'terminal'>, ca_sk), z.127)
+        r1    = r1.123
+        skT   = skT.125
+        z     = z.127
+        z.1   = verify(cert_sig(fst(sdec(cCA.116,
+                                         kdf(<'TENC', r1.123>, z.131)))),
+                       <cert_pk(fst(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131)))), 
+                        cert_id(fst(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.131
+        z.4   = fst(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131)))
+        z.5   = snd(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131)))
+        z.6   = cert_id(fst(sdec(cCA.116, kdf(<'TENC', r1.123>, z.131))))
+    
+     6. cCA   = cCA.117
+        cTA   = encaps(z.132, pk(skT.126))
+        certT = cert(x.229, x.230, z.128)
+        r1    = r1.124
+        skT   = skT.126
+        z     = z.128
+        z.1   = verify(cert_sig(fst(sdec(cCA.117,
+                                         kdf(<'TENC', r1.124>, z.132)))),
+                       <cert_pk(fst(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132)))), 
+                        cert_id(fst(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132)))), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.230, <x.229, z.128, 'terminal'>, pk(ca_sk))
+        z.3   = z.132
+        z.4   = fst(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132)))
+        z.5   = snd(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132)))
+        z.6   = cert_id(fst(sdec(cCA.117, kdf(<'TENC', r1.124>, z.132))))
+    
+     7. cCA   = senc(x.165, kdf(<'TENC', r1.90>, z.98))
+        cTA   = encaps(z.98, pk(skT.92))
+        certT = cert(x.169, sign(<x.169, z.94, 'terminal'>, ca_sk), z.94)
+        r1    = r1.90
+        skT   = skT.92
+        z     = z.94
+        z.1   = verify(cert_sig(fst(x.165)),
+                       <cert_pk(fst(x.165)), cert_id(fst(x.165)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.98
+        z.4   = fst(x.165)
+        z.5   = snd(x.165)
+        z.6   = cert_id(fst(x.165))
+    
+     8. cCA   = senc(x.166, kdf(<'TENC', r1.91>, z.99))
+        cTA   = encaps(z.99, pk(skT.93))
+        certT = cert(x.170, x.171, z.95)
+        r1    = r1.91
+        skT   = skT.93
+        z     = z.95
+        z.1   = verify(cert_sig(fst(x.166)),
+                       <cert_pk(fst(x.166)), cert_id(fst(x.166)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.171, <x.170, z.95, 'terminal'>, pk(ca_sk))
+        z.3   = z.99
+        z.4   = fst(x.166)
+        z.5   = snd(x.166)
+        z.6   = cert_id(fst(x.166))
+    
+     9. cCA   = senc(x.206, kdf(<'TENC', r1.111>, z.119))
+        cTA   = encaps(z.119, pk(skT.113))
+        certT = certT.106
+        r1    = r1.111
+        skT   = skT.113
+        z     = cert_id(certT.106)
+        z.1   = verify(cert_sig(fst(x.206)),
+                       <cert_pk(fst(x.206)), cert_id(fst(x.206)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = z.119
+        z.4   = fst(x.206)
+        z.5   = snd(x.206)
+        z.6   = cert_id(fst(x.206))
+    
+    10. cCA   = senc(x.215, kdf(<'TENC', r1.116>, decaps(cTA.110, skT.118)))
+        cTA   = cTA.110
+        certT = certT.111
+        r1    = r1.116
+        skT   = skT.118
+        z     = cert_id(certT.111)
+        z.1   = verify(cert_sig(fst(x.215)),
+                       <cert_pk(fst(x.215)), cert_id(fst(x.215)), 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.111),
+                       <cert_pk(certT.111), cert_id(certT.111), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.110, skT.118)
+        z.4   = fst(x.215)
+        z.5   = snd(x.215)
+        z.6   = cert_id(fst(x.215))
+    
+    11. cCA   = senc(x.219, kdf(<'TENC', r1.120>, decaps(cTA.114, skT.122)))
+        cTA   = cTA.114
+        certT = cert(x.223, sign(<x.223, z.124, 'terminal'>, ca_sk), z.124)
+        r1    = r1.120
+        skT   = skT.122
+        z     = z.124
+        z.1   = verify(cert_sig(fst(x.219)),
+                       <cert_pk(fst(x.219)), cert_id(fst(x.219)), 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.114, skT.122)
+        z.4   = fst(x.219)
+        z.5   = snd(x.219)
+        z.6   = cert_id(fst(x.219))
+    
+    12. cCA   = senc(x.220, kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123)))
+        cTA   = cTA.115
+        certT = cert(x.224, x.225, z.125)
+        r1    = r1.121
+        skT   = skT.123
+        z     = z.125
+        z.1   = verify(cert_sig(fst(x.220)),
+                       <cert_pk(fst(x.220)), cert_id(fst(x.220)), 'chip'>, pk(ca_sk))
+        z.2   = verify(x.225, <x.224, z.125, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.115, skT.123)
+        z.4   = fst(x.220)
+        z.5   = snd(x.220)
+        z.6   = cert_id(fst(x.220))
+    
+    13. cCA   = senc(<z.57, z.58>, kdf(<'TENC', r1.47>, z.55))
+        cTA   = encaps(z.55, pk(skT.49))
+        certT = certT.42
+        r1    = r1.47
+        skT   = skT.49
+        z     = cert_id(certT.42)
+        z.1   = verify(cert_sig(z.57), <cert_pk(z.57), cert_id(z.57), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.42),
+                       <cert_pk(certT.42), cert_id(certT.42), 'terminal'>, pk(ca_sk))
+        z.3   = z.55
+        z.4   = z.57
+        z.5   = z.58
+        z.6   = cert_id(z.57)
+    
+    14. cCA   = senc(<z.59, z.60>,
+                     kdf(<'TENC', r1.49>, decaps(cTA.43, skT.51)))
+        cTA   = cTA.43
+        certT = certT.44
+        r1    = r1.49
+        skT   = skT.51
+        z     = cert_id(certT.44)
+        z.1   = verify(cert_sig(z.59), <cert_pk(z.59), cert_id(z.59), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(cert_sig(certT.44),
+                       <cert_pk(certT.44), cert_id(certT.44), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.43, skT.51)
+        z.4   = z.59
+        z.5   = z.60
+        z.6   = cert_id(z.59)
+    
+    15. cCA   = senc(<z.101, z.102>, kdf(<'TENC', r1.91>, z.99))
+        cTA   = encaps(z.99, pk(skT.93))
+        certT = cert(x.171, sign(<x.171, z.95, 'terminal'>, ca_sk), z.95)
+        r1    = r1.91
+        skT   = skT.93
+        z     = z.95
+        z.1   = verify(cert_sig(z.101), <cert_pk(z.101), cert_id(z.101), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = z.99
+        z.4   = z.101
+        z.5   = z.102
+        z.6   = cert_id(z.101)
+    
+    16. cCA   = senc(<z.102, z.103>, kdf(<'TENC', r1.92>, z.100))
+        cTA   = encaps(z.100, pk(skT.94))
+        certT = cert(x.172, x.173, z.96)
+        r1    = r1.92
+        skT   = skT.94
+        z     = z.96
+        z.1   = verify(cert_sig(z.102), <cert_pk(z.102), cert_id(z.102), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.173, <x.172, z.96, 'terminal'>, pk(ca_sk))
+        z.3   = z.100
+        z.4   = z.102
+        z.5   = z.103
+        z.6   = cert_id(z.102)
+    
+    17. cCA   = senc(<z.131, z.132>,
+                     kdf(<'TENC', r1.121>, decaps(cTA.115, skT.123)))
+        cTA   = cTA.115
+        certT = cert(x.225, sign(<x.225, z.125, 'terminal'>, ca_sk), z.125)
+        r1    = r1.121
+        skT   = skT.123
+        z     = z.125
+        z.1   = verify(cert_sig(z.131), <cert_pk(z.131), cert_id(z.131), 'chip'>,
+                       pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.115, skT.123)
+        z.4   = z.131
+        z.5   = z.132
+        z.6   = cert_id(z.131)
+    
+    18. cCA   = senc(<z.132, z.133>,
+                     kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124)))
+        cTA   = cTA.116
+        certT = cert(x.226, x.227, z.126)
+        r1    = r1.122
+        skT   = skT.124
+        z     = z.126
+        z.1   = verify(cert_sig(z.132), <cert_pk(z.132), cert_id(z.132), 'chip'>,
+                       pk(ca_sk))
+        z.2   = verify(x.227, <x.226, z.126, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.116, skT.124)
+        z.4   = z.132
+        z.5   = z.133
+        z.6   = cert_id(z.132)
+    
+    19. cCA   = senc(<
+                      cert(x.167, sign(<x.167, z.106, 'chip'>, ca_sk), z.106), z.103>,
+                     kdf(<'TENC', r1.92>, z.100))
+        cTA   = encaps(z.100, pk(skT.94))
+        certT = cert(x.173, sign(<x.173, z.96, 'terminal'>, ca_sk), z.96)
+        r1    = r1.92
+        skT   = skT.94
+        z     = z.96
+        z.1   = true
+        z.2   = true
+        z.3   = z.100
+        z.4   = cert(x.167, sign(<x.167, z.106, 'chip'>, ca_sk), z.106)
+        z.5   = z.103
+        z.6   = z.106
+    
+    20. cCA   = senc(<cert(x.168, x.169, z.107), z.104>,
+                     kdf(<'TENC', r1.93>, z.101))
+        cTA   = encaps(z.101, pk(skT.95))
+        certT = cert(x.175, sign(<x.175, z.97, 'terminal'>, ca_sk), z.97)
+        r1    = r1.93
+        skT   = skT.95
+        z     = z.97
+        z.1   = verify(x.169, <x.168, z.107, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = z.101
+        z.4   = cert(x.168, x.169, z.107)
+        z.5   = z.104
+        z.6   = z.107
+    
+    21. cCA   = senc(<
+                      cert(x.168, sign(<x.168, z.107, 'chip'>, ca_sk), z.107), z.104>,
+                     kdf(<'TENC', r1.93>, z.101))
+        cTA   = encaps(z.101, pk(skT.95))
+        certT = cert(x.174, x.175, z.97)
+        r1    = r1.93
+        skT   = skT.95
+        z     = z.97
+        z.1   = true
+        z.2   = verify(x.175, <x.174, z.97, 'terminal'>, pk(ca_sk))
+        z.3   = z.101
+        z.4   = cert(x.168, sign(<x.168, z.107, 'chip'>, ca_sk), z.107)
+        z.5   = z.104
+        z.6   = z.107
+    
+    22. cCA   = senc(<cert(x.169, x.170, z.108), z.105>,
+                     kdf(<'TENC', r1.94>, z.102))
+        cTA   = encaps(z.102, pk(skT.96))
+        certT = cert(x.176, x.177, z.98)
+        r1    = r1.94
+        skT   = skT.96
+        z     = z.98
+        z.1   = verify(x.170, <x.169, z.108, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.177, <x.176, z.98, 'terminal'>, pk(ca_sk))
+        z.3   = z.102
+        z.4   = cert(x.169, x.170, z.108)
+        z.5   = z.105
+        z.6   = z.108
+    
+    23. cCA   = senc(<
+                      cert(x.206, sign(<x.206, z.125, 'chip'>, ca_sk), z.125), z.122>,
+                     kdf(<'TENC', r1.111>, z.119))
+        cTA   = encaps(z.119, pk(skT.113))
+        certT = certT.106
+        r1    = r1.111
+        skT   = skT.113
+        z     = cert_id(certT.106)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.106),
+                       <cert_pk(certT.106), cert_id(certT.106), 'terminal'>, pk(ca_sk))
+        z.3   = z.119
+        z.4   = cert(x.206, sign(<x.206, z.125, 'chip'>, ca_sk), z.125)
+        z.5   = z.122
+        z.6   = z.125
+    
+    24. cCA   = senc(<cert(x.207, x.208, z.126), z.123>,
+                     kdf(<'TENC', r1.112>, z.120))
+        cTA   = encaps(z.120, pk(skT.114))
+        certT = certT.107
+        r1    = r1.112
+        skT   = skT.114
+        z     = cert_id(certT.107)
+        z.1   = verify(x.208, <x.207, z.126, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.107),
+                       <cert_pk(certT.107), cert_id(certT.107), 'terminal'>, pk(ca_sk))
+        z.3   = z.120
+        z.4   = cert(x.207, x.208, z.126)
+        z.5   = z.123
+        z.6   = z.126
+    
+    25. cCA   = senc(<
+                      cert(x.215, sign(<x.215, z.130, 'chip'>, ca_sk), z.130), z.127>,
+                     kdf(<'TENC', r1.116>, decaps(cTA.110, skT.118)))
+        cTA   = cTA.110
+        certT = certT.111
+        r1    = r1.116
+        skT   = skT.118
+        z     = cert_id(certT.111)
+        z.1   = true
+        z.2   = verify(cert_sig(certT.111),
+                       <cert_pk(certT.111), cert_id(certT.111), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.110, skT.118)
+        z.4   = cert(x.215, sign(<x.215, z.130, 'chip'>, ca_sk), z.130)
+        z.5   = z.127
+        z.6   = z.130
+    
+    26. cCA   = senc(<cert(x.216, x.217, z.131), z.128>,
+                     kdf(<'TENC', r1.117>, decaps(cTA.111, skT.119)))
+        cTA   = cTA.111
+        certT = certT.112
+        r1    = r1.117
+        skT   = skT.119
+        z     = cert_id(certT.112)
+        z.1   = verify(x.217, <x.216, z.131, 'chip'>, pk(ca_sk))
+        z.2   = verify(cert_sig(certT.112),
+                       <cert_pk(certT.112), cert_id(certT.112), 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.111, skT.119)
+        z.4   = cert(x.216, x.217, z.131)
+        z.5   = z.128
+        z.6   = z.131
+    
+    27. cCA   = senc(<
+                      cert(x.221, sign(<x.221, z.136, 'chip'>, ca_sk), z.136), z.133>,
+                     kdf(<'TENC', r1.122>, decaps(cTA.116, skT.124)))
+        cTA   = cTA.116
+        certT = cert(x.227, sign(<x.227, z.126, 'terminal'>, ca_sk), z.126)
+        r1    = r1.122
+        skT   = skT.124
+        z     = z.126
+        z.1   = true
+        z.2   = true
+        z.3   = decaps(cTA.116, skT.124)
+        z.4   = cert(x.221, sign(<x.221, z.136, 'chip'>, ca_sk), z.136)
+        z.5   = z.133
+        z.6   = z.136
+    
+    28. cCA   = senc(<cert(x.222, x.223, z.137), z.134>,
+                     kdf(<'TENC', r1.123>, decaps(cTA.117, skT.125)))
+        cTA   = cTA.117
+        certT = cert(x.229, sign(<x.229, z.127, 'terminal'>, ca_sk), z.127)
+        r1    = r1.123
+        skT   = skT.125
+        z     = z.127
+        z.1   = verify(x.223, <x.222, z.137, 'chip'>, pk(ca_sk))
+        z.2   = true
+        z.3   = decaps(cTA.117, skT.125)
+        z.4   = cert(x.222, x.223, z.137)
+        z.5   = z.134
+        z.6   = z.137
+    
+    29. cCA   = senc(<
+                      cert(x.222, sign(<x.222, z.137, 'chip'>, ca_sk), z.137), z.134>,
+                     kdf(<'TENC', r1.123>, decaps(cTA.117, skT.125)))
+        cTA   = cTA.117
+        certT = cert(x.228, x.229, z.127)
+        r1    = r1.123
+        skT   = skT.125
+        z     = z.127
+        z.1   = true
+        z.2   = verify(x.229, <x.228, z.127, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.117, skT.125)
+        z.4   = cert(x.222, sign(<x.222, z.137, 'chip'>, ca_sk), z.137)
+        z.5   = z.134
+        z.6   = z.137
+    
+    30. cCA   = senc(<cert(x.223, x.224, z.138), z.135>,
+                     kdf(<'TENC', r1.124>, decaps(cTA.118, skT.126)))
+        cTA   = cTA.118
+        certT = cert(x.230, x.231, z.128)
+        r1    = r1.124
+        skT   = skT.126
+        z     = z.128
+        z.1   = verify(x.224, <x.223, z.138, 'chip'>, pk(ca_sk))
+        z.2   = verify(x.231, <x.230, z.128, 'terminal'>, pk(ca_sk))
+        z.3   = decaps(cTA.118, skT.126)
+        z.4   = cert(x.223, x.224, z.138)
+        z.5   = z.135
+        z.6   = z.138
+  */
+
+restriction Equality:
+  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
+  // safety formula
+
+lemma session_exist:
+  exists-trace
+  "∃ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+    (#i < #j)"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  #i < #j"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( mac(<'CA', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                kdf(<'TMAC', ~r1>, ~kTA))
+                       ) @ #vk.5 )
+                  case TA_RESPONSE_T
+                  solve( !KU( senc(<
+                                    cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2>,
+                                   kdf(<'TENC', ~r1>, ~kTA))
+                         ) @ #vk.26 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( encaps(~kTA, pk(~skT)) ) @ #vk.26 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~r1 ) @ #vk.26 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                               ) @ #vk.16 )
+                          case CA_Sign_ltk
+                          solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.11 )
+                            case TA_RESPONSE_T
+                            solve( !KU( encaps(~kTA, pk(~skT.1)) ) @ #vk.33 )
+                              case TA_CHALLENGE_C
+                              solve( !KU( senc(<cert(z, sign(<z, x, 'chip'>, ca_sk), x), z.1>,
+                                               kdf(<'TENC', ~r1>, ~kTA))
+                                     ) @ #vk.33 )
+                                case TA_CHALLENGE_C
+                                solve( !KU( kdf(<'CNF', 
+                                                 cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T), 
+                                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                 ~r2, encaps(~k, pk(~ltk))>,
+                                                ~k)
+                                       ) @ #vk.22 )
+                                  case TA_COMPLETE_C
+                                  solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.16 )
+                                    case TA_RESPONSE_T
+                                    SOLVED // trace found
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma two_session_exist:
+  exists-trace
+  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
+    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+        (#i < #j)) ∧
+       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
+      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
+     (#i2 < #j2)) ∧
+    (¬(k = k2))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T k k2 sid sid2 #i #j #i2 #j2.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
+  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
+  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
+ ∧
+  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
+                case TA_COMPLETE_C_case_1
+                solve( TAChallengeC( <$C, iid.1>, cert(x, x.1, $T), id_c.1, r1.1, r2.1,
+                                     kTMAC, kTCNF
+                       ) ▶₁ #i2 )
+                  case TA_CHALLENGE_C
+                  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i2 )
+                    case Generate_chip_key_pair
+                    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i2 )
+                      case CA_Sign_ltk
+                      solve( Completed( kdf(<'KEY', 
+                                             cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), 
+                                             ~r2.1, cip>,
+                                            z),
+                                        <cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C), ~r2.1, 
+                                         cip>,
+                                        $T, 'terminal', $C
+                             ) @ #j2 )
+                        case CA_FINISH_T
+                        solve( TAResponseT( <$T, iid.3>, id_c.3,
+                                            cert(pk(~ltk.2), sign(<pk(~ltk.2), $C, 'chip'>, ca_sk), $C),
+                                            ~r2.1, <z, cip>
+                               ) ▶₁ #j2 )
+                          case TA_RESPONSE_T
+                          solve( !Cert( $T, cert(x, sign(<x, $T, 'terminal'>, ca_sk), $T),
+                                        'terminal'
+                                 ) ▶₂ #j2 )
+                            case CA_Sign_ltk
+                            solve( splitEqs(2) )
+                              case split_case_1
+                              solve( splitEqs(5) )
+                                case split_case_1
+                                solve( !KU( mac(<'CA', 
+                                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk),
+                                                      $T), 
+                                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                 ~r2, encaps(~k, pk(~ltk))>,
+                                                kdf(<'TMAC', ~r1>, ~kTA))
+                                       ) @ #vk.5 )
+                                  case c_mac
+                                  solve( !KU( ~r2 ) @ #vk.53 )
+                                    case TA_CHALLENGE_C
+                                    solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                                      case TA_RESPONSE_T
+                                      solve( !KU( senc(<
+                                                        cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk),
+                                                             $C), 
+                                                        ~r2>,
+                                                       kdf(<'TENC', r1.2>, decaps(cTA, ~skT)))
+                                             ) @ #vk.41 )
+                                        case c_senc
+                                        solve( !KU( mac(<'CA', 
+                                                         cert(pk(~ltk.2),
+                                                              sign(<pk(~ltk.2), $T, 'terminal'>, ca_sk), $T), 
+                                                         cert(pk(~skC), sign(<pk(~skC), $C, 'chip'>, ca_sk),
+                                                              $C), 
+                                                         ~r2.1, encaps(~k.1, pk(~skC))>,
+                                                        kdf(<'TMAC', ~r1.1>, ~kTA.1))
+                                               ) @ #vk.47 )
+                                          case TA_RESPONSE_T
+                                          solve( !KU( senc(<
+                                                            cert(pk(~skC),
+                                                                 sign(<pk(~skC), $C, 'chip'>, ca_sk), $C), 
+                                                            ~r2.1>,
+                                                           kdf(<'TENC', ~r1.1>, ~kTA.1))
+                                                 ) @ #vk.54 )
+                                            case TA_CHALLENGE_C
+                                            solve( !KU( encaps(~kTA.1, pk(~skT.1)) ) @ #vk.55 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( kdf(<'TMAC', ~r1>, ~kTA) ) @ #vk.56 )
+                                                case c_kdf
+                                                solve( !KU( ~kTA ) @ #vk.66 )
+                                                  case TA_CHALLENGE_C
+                                                  solve( !KU( ~ltk.1 ) @ #vk.68 )
+                                                    case Corrupt_ltk
+                                                    solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.61 )
+                                                      case c_kdf
+                                                      solve( !KU( encaps(~kTA, pk(~skT.2)) ) @ #vk.66 )
+                                                        case TA_CHALLENGE_C
+                                                        solve( !KU( senc(<
+                                                                          cert(z, sign(<z, x, 'chip'>, ca_sk),
+                                                                               x), 
+                                                                          z.1>,
+                                                                         kdf(<'TENC', ~r1>, ~kTA))
+                                                               ) @ #vk.67 )
+                                                          case TA_CHALLENGE_C
+                                                          solve( !KU( kdf(<'TENC', r1.2>, decaps(cTA, ~skT.1))
+                                                                 ) @ #vk.68 )
+                                                            case c_kdf
+                                                            solve( !KU( decaps(cTA, ~skT.1) ) @ #vk.72 )
+                                                              case c_decaps
+                                                              solve( !KU( ~skT.1 ) @ #vk.73 )
+                                                                case Corrupt_ltk
+                                                                solve( !KU( ~r1 ) @ #vk.69 )
+                                                                  case TA_CHALLENGE_C
+                                                                  solve( !KU( ~r1.1 ) @ #vk.66 )
+                                                                    case TA_CHALLENGE_C
+                                                                    solve( !KU( cert(pk(~ltk.1),
+                                                                                     sign(<pk(~ltk.1), $T, 
+                                                                                           'terminal'>,
+                                                                                          ca_sk),
+                                                                                     $T)
+                                                                           ) @ #vk.50 )
+                                                                      case CA_Sign_ltk
+                                                                      solve( !KU( kdf(<'CNF', 
+                                                                                       cert(pk(~ltk.1),
+                                                                                            sign(<pk(~ltk.1), 
+                                                                                                  $T, 
+                                                                                                  'terminal'>,
+                                                                                                 ca_sk),
+                                                                                            $T), 
+                                                                                       cert(pk(~ltk),
+                                                                                            sign(<pk(~ltk), 
+                                                                                                  $C, 'chip'>,
+                                                                                                 ca_sk),
+                                                                                            $C), 
+                                                                                       ~r2, 
+                                                                                       encaps(~k, pk(~ltk))>,
+                                                                                      ~k)
+                                                                             ) @ #vk.53 )
+                                                                        case TA_COMPLETE_C
+                                                                        solve( !KU( encaps(~k, pk(~ltk))
+                                                                               ) @ #vk.46 )
+                                                                          case TA_RESPONSE_T
+                                                                          solve( !KU( cert(pk(~skT),
+                                                                                           sign(<pk(~skT), 
+                                                                                                 $T, 
+                                                                                                 'terminal'>,
+                                                                                                ca_sk),
+                                                                                           $T)
+                                                                                 ) @ #vk.66 )
+                                                                            case CA_Sign_ltk
+                                                                            solve( !KU( kdf(<'TCNF', ~r1.1>,
+                                                                                            ~kTA.1)
+                                                                                   ) @ #vk.65 )
+                                                                              case TA_RESPONSE_T
+                                                                              solve( !KU( encaps(~kTA.1,
+                                                                                                 pk(~skT.2))
+                                                                                     ) @ #vk.79 )
+                                                                                case TA_CHALLENGE_C
+                                                                                solve( !KU( senc(<
+                                                                                                  cert(z,
+                                                                                                       sign(<
+                                                                                                             z, 
+                                                                                                             x, 
+                                                                                                             'chip'
+                                                                                                            >,
+                                                                                                            ca_sk),
+                                                                                                       x), 
+                                                                                                  z.1>,
+                                                                                                 kdf(<'TENC', 
+                                                                                                      ~r1.1>,
+                                                                                                     ~kTA.1))
+                                                                                       ) @ #vk.79 )
+                                                                                  case TA_CHALLENGE_C
+                                                                                  solve( !KU( kdf(<'CNF', 
+                                                                                                   cert(pk(~skT),
+                                                                                                        sign(<
+                                                                                                              pk(~skT), 
+                                                                                                              $T, 
+                                                                                                              'terminal'
+                                                                                                             >,
+                                                                                                             ca_sk),
+                                                                                                        $T), 
+                                                                                                   cert(pk(~skC),
+                                                                                                        sign(<
+                                                                                                              pk(~skC), 
+                                                                                                              $C, 
+                                                                                                              'chip'
+                                                                                                             >,
+                                                                                                             ca_sk),
+                                                                                                        $C), 
+                                                                                                   ~r2.1, 
+                                                                                                   encaps(~k.1,
+                                                                                                          pk(~skC))
+                                                                                                  >,
+                                                                                                  ~k.1)
+                                                                                         ) @ #vk.68 )
+                                                                                    case TA_COMPLETE_C
+                                                                                    solve( !KU( encaps(~k.1,
+                                                                                                       pk(~skC))
+                                                                                           ) @ #vk.68 )
+                                                                                      case TA_RESPONSE_T
+                                                                                      solve( !KU( cert(pk(~ltk),
+                                                                                                       sign(<
+                                                                                                             pk(~ltk), 
+                                                                                                             $C, 
+                                                                                                             'chip'
+                                                                                                            >,
+                                                                                                            ca_sk),
+                                                                                                       $C)
+                                                                                             ) @ #vk.71 )
+                                                                                        case CA_Sign_ltk
+                                                                                        SOLVED // trace found
+                                                                                      qed
+                                                                                    qed
+                                                                                  qed
+                                                                                qed
+                                                                              qed
+                                                                            qed
+                                                                          qed
+                                                                        qed
+                                                                      qed
+                                                                    qed
+                                                                  qed
+                                                                qed
+                                                              qed
+                                                            qed
+                                                          qed
+                                                        qed
+                                                      qed
+                                                    qed
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C_case_1
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           r2, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_2
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           r2, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma weak_agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T.1, iid>, id_c,
+                          cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.16 )
+              case TA_RESPONSE_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2>,
+                               kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                     ) @ #vk.14 )
+                case c_senc
+                solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                       ) @ #vk.22 )
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.26 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.26 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_cert
+                  solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.29 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.27 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.27 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_sign
+                    by solve( !KU( ca_sk ) @ #vk.33 )
+                  qed
+                qed
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.16 )
+              case TA_RESPONSE_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2>,
+                               kdf(<'TENC', r1>, z))
+                     ) @ #vk.14 )
+                case TA_CHALLENGE_C
+                solve( !KU( ~r2 ) @ #vk.24 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.25 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_senc
+                solve( !KU( encaps(z, pk(~skT)) ) @ #vk.15 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.23 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.34 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.38 )
+                    qed
+                  qed
+                next
+                  case TA_RESPONSE_T
+                  solve( splitEqs(6) )
+                    case split_case_1
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.25 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.37 )
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.41 )
+                      qed
+                    qed
+                  next
+                    case split_case_2
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.25 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.37 )
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.41 )
+                      qed
+                    qed
+                  qed
+                next
+                  case c_encaps
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.23 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.31 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.35 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_C:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      C, 'chip', T.1
+           ) @ #i )
+      case TA_COMPLETE_C_case_1
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           r2, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.31 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.35 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.36 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            next
+              case split_case_2
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.31 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.35 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.36 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_2
+      solve( TAChallengeC( <$C, iid>,
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), id_c, r1,
+                           r2, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), 'chip'
+                 ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( splitEqs(1) )
+              case split_case_1
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.31 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.35 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.36 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            next
+              case split_case_2
+              solve( splitEqs(2) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( !KU( kdf(<'CNF', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk.1 )
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.31 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.35 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.36 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma agreement_T:
+  all-traces
+  "∀ k sid C T #i #t.
+    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
+      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
+     (∃ #k.1. Corrupted( T ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid C T #i #t.
+  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      T.1, 'terminal', C
+           ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T.1, iid>, id_c,
+                          cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.16 )
+              case TA_RESPONSE_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2>,
+                               kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                     ) @ #vk.14 )
+                case c_senc
+                solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                       ) @ #vk.22 )
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.26 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.26 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_cert
+                  solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.29 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.27 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.27 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_sign
+                    by solve( !KU( ca_sk ) @ #vk.33 )
+                  qed
+                qed
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, C, 'chip'>, ca_sk), C), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.16 )
+              case TA_RESPONSE_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C), r2>,
+                               kdf(<'TENC', r1>, z))
+                     ) @ #vk.14 )
+                case TA_CHALLENGE_C
+                solve( !KU( ~r2 ) @ #vk.24 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.25 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_senc
+                solve( !KU( encaps(z, pk(~skT)) ) @ #vk.15 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.23 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.34 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.38 )
+                    qed
+                  qed
+                next
+                  case TA_RESPONSE_T
+                  solve( splitEqs(6) )
+                    case split_case_1
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.25 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.37 )
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.41 )
+                      qed
+                    qed
+                  next
+                    case split_case_2
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                           ) @ #vk.25 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.37 )
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.41 )
+                      qed
+                    qed
+                  qed
+                next
+                  case c_encaps
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), C, 'chip'>, ca_sk), C)
+                         ) @ #vk.23 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), C, 'chip'>, ca_sk) ) @ #vk.31 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.35 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma aliveness:
+  all-traces
+  "∀ k sid A role B #i #t.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
+    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
+     (∃ #k.1. Corrupted( B ) @ #k.1))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ k sid A role B #i #t.
+  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
+ ∧
+  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
+  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
+*/
+simplify
+solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #t )
+  case TA_RESPONSE_T
+  solve( !Cert( $T, certT, 'terminal' ) ▶₂ #t )
+    case CA_Sign_ltk
+    solve( Completed( k.1,
+                      <cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                       cert(z, sign(<z, z.1, 'chip'>, ca_sk), z.1), r2, encaps(~k, z)>,
+                      A, role, B
+           ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T.1, iid>, id_c,
+                          cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <k.1, encaps(~k, z)>
+             ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( splitEqs(1) )
+          case split_case_1
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.16 )
+              case TA_RESPONSE_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B), r2>,
+                               kdf(<'TENC', r1>, decaps(cTA, ~skT)))
+                     ) @ #vk.14 )
+                case c_senc
+                solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                       ) @ #vk.22 )
+                  case CA_Sign_ltk
+                  solve( !KU( ~ltk.1 ) @ #vk.26 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.26 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                next
+                  case c_cert
+                  solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.29 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.27 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.27 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_sign
+                    by solve( !KU( ca_sk ) @ #vk.33 )
+                  qed
+                qed
+              qed
+            qed
+          qed
+        next
+          case split_case_2
+          solve( !KU( kdf(<'CNF', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                           cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                          ~k)
+                 ) @ #vk.1 )
+            case TA_COMPLETE_C
+            by contradiction /* from formulas */
+          next
+            case c_kdf
+            solve( !KU( ~k ) @ #vk.16 )
+              case TA_RESPONSE_T
+              solve( !KU( senc(<cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B), r2>,
+                               kdf(<'TENC', r1>, z))
+                     ) @ #vk.14 )
+                case TA_CHALLENGE_C
+                solve( !KU( ~r2 ) @ #vk.24 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( ~ltk.1 ) @ #vk.25 )
+                    case Corrupt_ltk
+                    by contradiction /* from formulas */
+                  qed
+                qed
+              next
+                case c_senc
+                solve( !KU( encaps(z, pk(~skT)) ) @ #vk.15 )
+                  case TA_CHALLENGE_C
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                         ) @ #vk.23 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.34 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.38 )
+                    qed
+                  qed
+                next
+                  case TA_RESPONSE_T
+                  solve( splitEqs(6) )
+                    case split_case_1
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                           ) @ #vk.25 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.37 )
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.41 )
+                      qed
+                    qed
+                  next
+                    case split_case_2
+                    solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                           ) @ #vk.25 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.29 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_cert
+                      solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.37 )
+                        case CA_Sign_ltk
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case TA_CHALLENGE_C
+                        solve( !KU( ~ltk.1 ) @ #vk.31 )
+                          case Corrupt_ltk
+                          by contradiction /* from formulas */
+                        qed
+                      next
+                        case c_sign
+                        by solve( !KU( ca_sk ) @ #vk.41 )
+                      qed
+                    qed
+                  qed
+                next
+                  case c_encaps
+                  solve( !KU( cert(pk(sk), sign(<pk(sk), B, 'chip'>, ca_sk), B)
+                         ) @ #vk.23 )
+                    case CA_Sign_ltk
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case TA_CHALLENGE_C
+                    solve( !KU( ~ltk.1 ) @ #vk.26 )
+                      case Corrupt_ltk
+                      by contradiction /* from formulas */
+                    qed
+                  next
+                    case c_cert
+                    solve( !KU( sign(<pk(sk), B, 'chip'>, ca_sk) ) @ #vk.31 )
+                      case CA_Sign_ltk
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk.1 ) @ #vk.27 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    next
+                      case c_sign
+                      by solve( !KU( ca_sk ) @ #vk.35 )
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_1
+      by contradiction /* from formulas */
+    next
+      case TA_COMPLETE_C_case_2
+      by contradiction /* from formulas */
+    qed
+  qed
+qed
+
+lemma session_uniqueness:
+  all-traces
+  "∀ A B k sid sid2 role #i #j.
+    ((Completed( k, sid, A, role, B ) @ #i) ∧
+     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
+    ((#i = #j) ∧ (sid = sid2))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ A B k sid sid2 role #i #j.
+  (Completed( k, sid, A, role, B ) @ #i) ∧
+  (Completed( k, sid2, A, role, B ) @ #j)
+ ∧
+  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
+*/
+simplify
+solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
+  case case_1
+  solve( (#i < #j)  ∥ (#j < #i) )
+    case case_1
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                                ~k),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( TAResponseT( <$T, iid.1>, id_c.1,
+                                cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_1
+      solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z.1),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C_case_1
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, kTMAC,
+                                   kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            next
+              case TA_COMPLETE_C_case_2
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, kTMAC,
+                                   kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_2
+      solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z.1),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C_case_1
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, kTMAC,
+                                   kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            next
+              case TA_COMPLETE_C_case_2
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, kTMAC,
+                                   kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  next
+    case case_2
+    solve( Completed( k, sid, A, role, B ) @ #i )
+      case CA_FINISH_T
+      solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+        case TA_RESPONSE_T
+        solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                                ~k),
+                            sid2, $T, 'terminal', B
+                 ) @ #j )
+            case CA_FINISH_T
+            solve( TAResponseT( <$T, iid.1>, id_c.1,
+                                cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, <~k, encaps(~k, z)>
+                   ) ▶₁ #j )
+              case TA_RESPONSE_T
+              by contradiction /* cyclic */
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_1
+      solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z.1),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C_case_1
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, kTMAC,
+                                   kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            next
+              case TA_COMPLETE_C_case_2
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, kTMAC,
+                                   kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    next
+      case TA_COMPLETE_C_case_2
+      solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+             ) ▶₁ #i )
+        case TA_CHALLENGE_C
+        solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+          case Generate_chip_key_pair
+          solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+            case CA_Sign_ltk
+            solve( Completed( kdf(<'KEY', 
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                  z.1),
+                              sid2, $C, 'chip', B
+                   ) @ #j )
+              case TA_COMPLETE_C_case_1
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, kTMAC,
+                                   kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            next
+              case TA_COMPLETE_C_case_2
+              solve( TAChallengeC( <$C, iid.1>,
+                                   cert(z, sign(<z, B, 'terminal'>, ca_sk), B), id_c.1, r1.1, ~r2, kTMAC,
+                                   kTCNF
+                     ) ▶₁ #j )
+                case TA_CHALLENGE_C
+                by contradiction /* cyclic */
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case case_2
+  solve( Completed( k, sid, A, role, B ) @ #i )
+    case CA_FINISH_T
+    solve( TAResponseT( <$T, iid>, id_c, certC, r2, <k, cip> ) ▶₁ #i )
+      case TA_RESPONSE_T
+      solve( !Cert( $T, certT, 'terminal' ) ▶₂ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(pk(~ltk), sign(<pk(~ltk), $T, 'terminal'>, ca_sk), $T), 
+                               cert(z, sign(<z, B, 'chip'>, ca_sk), B), r2, encaps(~k, z)>,
+                              ~k),
+                          sid2, $T, 'terminal', B
+               ) @ #j )
+          case CA_FINISH_T
+          by contradiction /* from formulas */
+        qed
+      qed
+    qed
+  next
+    case TA_COMPLETE_C_case_1
+    solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+           ) ▶₁ #i )
+      case TA_CHALLENGE_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                z.1),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case TA_COMPLETE_C_case_1
+            by contradiction /* from formulas */
+          next
+            case TA_COMPLETE_C_case_2
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  next
+    case TA_COMPLETE_C_case_2
+    solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+           ) ▶₁ #i )
+      case TA_CHALLENGE_C
+      solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+        case Generate_chip_key_pair
+        solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+          case CA_Sign_ltk
+          solve( Completed( kdf(<'KEY', 
+                                 cert(z, sign(<z, B, 'terminal'>, ca_sk), B), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                                z.1),
+                            sid2, $C, 'chip', B
+                 ) @ #j )
+            case TA_COMPLETE_C_case_1
+            by contradiction /* from formulas */
+          next
+            case TA_COMPLETE_C_case_2
+            by contradiction /* from formulas */
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma consistency:
+  all-traces
+  "∀ C T k k2 sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
+    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k k2 sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k2, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( splitEqs(2) )
+                  case split_case_1
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.5 )
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.35 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                        case TA_RESPONSE_T
+                        solve( !KU( kdf(<'CNF', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk))>,
+                                        ~k)
+                               ) @ #vk.19 )
+                          case c_kdf
+                          solve( !KU( ~k ) @ #vk.46 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.48 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.38 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.41 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk))>,
+                                            ~k)
+                                   ) @ #vk.21 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.43 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.45 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case split_case_2
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.5 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.14 )
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.31 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~r2 ) @ #vk.35 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.35 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                        case TA_RESPONSE_T
+                        solve( !KU( kdf(<'CNF', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk))>,
+                                        ~k)
+                               ) @ #vk.19 )
+                          case c_kdf
+                          solve( !KU( ~k ) @ #vk.46 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.48 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.38 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.41 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk))>,
+                                            ~k)
+                                   ) @ #vk.21 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.43 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.45 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case TA_COMPLETE_C_case_2
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( k2,
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <k, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(0) )
+                case split_case_1
+                by contradiction /* from formulas */
+              next
+                case split_case_2
+                solve( splitEqs(2) )
+                  case split_case_1
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.5 )
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.35 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                        case TA_RESPONSE_T
+                        solve( !KU( kdf(<'CNF', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk))>,
+                                        ~k)
+                               ) @ #vk.19 )
+                          case c_kdf
+                          solve( !KU( ~k ) @ #vk.46 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.48 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.38 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.41 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk))>,
+                                            ~k)
+                                   ) @ #vk.21 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.43 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.45 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                next
+                  case split_case_2
+                  solve( !KU( mac(<'CA', 
+                                   cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                   cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                   encaps(~k, pk(~ltk))>,
+                                  kdf(<'TMAC', ~r1>, ~kTA))
+                         ) @ #vk.5 )
+                    case TA_RESPONSE_T
+                    solve( !KU( kdf(<'CNF', 
+                                     cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                     cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                     encaps(~k, pk(~ltk))>,
+                                    ~k)
+                           ) @ #vk.14 )
+                      case c_kdf
+                      solve( !KU( ~k ) @ #vk.31 )
+                        case TA_RESPONSE_T
+                        solve( !KU( ~r2 ) @ #vk.35 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk ) @ #vk.36 )
+                            case Corrupt_ltk
+                            by contradiction /* from formulas */
+                          qed
+                        qed
+                      qed
+                    qed
+                  next
+                    case c_mac
+                    solve( !KU( ~r2 ) @ #vk.35 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.4 )
+                        case TA_RESPONSE_T
+                        solve( !KU( kdf(<'CNF', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk))>,
+                                        ~k)
+                               ) @ #vk.19 )
+                          case c_kdf
+                          solve( !KU( ~k ) @ #vk.46 )
+                            case TA_RESPONSE_T
+                            solve( !KU( ~ltk ) @ #vk.48 )
+                              case Corrupt_ltk
+                              by contradiction /* from formulas */
+                            qed
+                          qed
+                        qed
+                      next
+                        case c_kdf
+                        solve( !KU( ~kTA ) @ #vk.38 )
+                          case TA_CHALLENGE_C
+                          solve( !KU( ~ltk.1 ) @ #vk.41 )
+                            case Corrupt_ltk
+                            solve( !KU( kdf(<'CNF', 
+                                             cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                             cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                             encaps(~k, pk(~ltk))>,
+                                            ~k)
+                                   ) @ #vk.21 )
+                              case c_kdf
+                              solve( !KU( ~k ) @ #vk.43 )
+                                case TA_RESPONSE_T
+                                solve( !KU( ~ltk ) @ #vk.45 )
+                                  case Corrupt_ltk
+                                  by contradiction /* from formulas */
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma key_secrecy:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
+    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m)) ∨
+     (∃ #m. Corrupted( C ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥) ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.32 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.36 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.37 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.32 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.36 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.37 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+next
+  case TA_COMPLETE_C_case_2
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.32 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.36 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.37 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              next
+                case split_case_2
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk )
+                  case Reveal_session
+                  by contradiction /* from formulas */
+                next
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.32 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.36 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.37 )
+                        case Corrupt_ltk
+                        by contradiction /* from formulas */
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma chip_hiding:
+  all-traces
+  "∀ C T iid #i.
+    (CompletedTA( C, iid, T ) @ #i) ⇒
+    ((¬(∃ #m. K( iid ) @ #m)) ∨ (∃ #m. (K( iid ) @ #m) ∧ (#i < #m)))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T iid #i.
+  (CompletedTA( C, iid, T ) @ #i)
+ ∧
+  (∃ #m. (K( iid ) @ #m)) ∧ (∀ #m. (K( iid ) @ #m) ⇒ ¬(#i < #m))"
+*/
+simplify
+solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+       ) ▶₁ #i )
+  case TA_CHALLENGE_C
+  solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+      case CA_Sign_ltk
+      solve( !KU( ~iid ) @ #vk.11 )
+        case TA_CHALLENGE_C
+        solve( splitEqs(0) )
+          case split_case_1
+          solve( !KU( mac(<'CA', cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          kdf(<'TMAC', ~r1>, ~kTA))
+                 ) @ #vk.6 )
+            case TA_RESPONSE_T
+            solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.14 )
+              case c_kdf
+              solve( !KU( ~kTA ) @ #vk.27 )
+                case TA_CHALLENGE_C
+                solve( !KU( ~ltk.1 ) @ #vk.29 )
+                  case Corrupt_ltk
+                  solve( !KU( encaps(~kTA, pk(~skT)) ) @ #vk.23 )
+                    case TA_CHALLENGE_C
+                    solve( !KU( senc(<
+                                      cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2>,
+                                     kdf(<'TENC', ~r1>, ~kTA))
+                           ) @ #vk.25 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~r1 ) @ #vk.23 )
+                        case TA_CHALLENGE_C
+                        solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                               ) @ #vk.21 )
+                          case CA_Sign_ltk
+                          solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.17 )
+                            case TA_RESPONSE_T
+                            solve( !KU( encaps(~kTA, pk(~skT.1)) ) @ #vk.35 )
+                              case TA_CHALLENGE_C
+                              solve( !KU( senc(<cert(z, sign(<z, x, 'chip'>, ca_sk), x), z.1>,
+                                               kdf(<'TENC', ~r1>, ~kTA))
+                                     ) @ #vk.35 )
+                                case TA_CHALLENGE_C
+                                solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.20 )
+                                  case TA_RESPONSE_T
+                                  SOLVED // trace found
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_terminal:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( C, 'chip', T ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( C ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( T, 'chip' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( C, 'chip', T ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( C ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( T, 'chip' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( C, 'chip', T ) @ #i )
+  case Verify_Transcript_C
+  solve( !Ltk( C, skC, 'chip' ) ▶₂ #i )
+    case Generate_chip_key_pair
+    solve( splitEqs(0) )
+      case split_case_2
+      solve( !KU( cert(x, sign(<x, T, 'terminal'>, ca_sk), T) ) @ #vk.1 )
+        case CA_Sign_ltk
+        solve( !KU( senc(<cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z>,
+                         kdf(<'TENC', r1>, kTA))
+               ) @ #vk.11 )
+          case c_senc
+          solve( !KU( mac(<'CA', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                           cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z, encaps(z.1, pk(~ltk.1))
+                          >,
+                          kdf(<'TMAC', r1>, kTA))
+                 ) @ #vk.15 )
+            case c_mac
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                             cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1), z, encaps(z.1, pk(~ltk.1))
+                            >,
+                            z.1)
+                   ) @ #vk.18 )
+              case c_kdf
+              solve( !KU( encaps(z.1, pk(~ltk.1)) ) @ #vk.19 )
+                case c_encaps
+                solve( !KU( cert(x, sign(<x, $A.1, 'chip'>, ca_sk), $A.1) ) @ #vk.25 )
+                  case CA_Sign_ltk
+                  solve( !KU( kdf(<'TCNF', r1>, kTA) ) @ #vk.21 )
+                    case c_kdf
+                    solve( !KU( kdf(<'TENC', r1>, kTA) ) @ #vk.26 )
+                      case c_kdf
+                      solve( !KU( kdf(<'TMAC', r1>, kTA) ) @ #vk.29 )
+                        case c_kdf
+                        solve( !KU( pk(~ltk.2) ) @ #vk.34 )
+                          case CA_Sign_ltk
+                          SOLVED // trace found
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma nonRepudiation_chip:
+  exists-trace
+  "∃ C T #i.
+    (((ValidTrans( T, 'terminal', C ) @ #i) ∧ (¬(∃ #k. Started( ) @ #k))) ∧
+     (¬(∃ #k. Corrupted( T ) @ #k))) ∧
+    (¬(∃ #k. RegisteredRole( C, 'terminal' ) @ #k))"
+/*
+guarded formula characterizing all satisfying traces:
+"∃ C T #i.
+  (ValidTrans( T, 'terminal', C ) @ #i)
+ ∧
+  (∀ #k. (Started( ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (Corrupted( T ) @ #k) ⇒ ⊥) ∧
+  (∀ #k. (RegisteredRole( C, 'terminal' ) @ #k) ⇒ ⊥)"
+*/
+simplify
+solve( ValidTrans( T, 'terminal', C ) @ #i )
+  case Verify_Transcript_T
+  solve( !Ltk( T, skT, 'terminal' ) ▶₂ #i )
+    case Generate_terminal_key_pair
+    solve( splitEqs(0) )
+      case split_case_2
+      solve( !KU( cert(x, sign(<x, $A, 'terminal'>, ca_sk), $A) ) @ #vk.1 )
+        case CA_Sign_ltk
+        solve( !KU( senc(<cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1>,
+                         kdf(<'TENC', r1>, z))
+               ) @ #vk.11 )
+          case c_senc
+          solve( !KU( mac(<'CA', 
+                           cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                           cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1, cip>,
+                          kdf(<'TMAC', r1>, z))
+                 ) @ #vk.15 )
+            case c_mac
+            solve( !KU( kdf(<'CNF', 
+                             cert(pk(~ltk), sign(<pk(~ltk), $A, 'terminal'>, ca_sk), $A), 
+                             cert(x, sign(<x, C, 'chip'>, ca_sk), C), z.1, cip>,
+                            kKDF)
+                   ) @ #vk.18 )
+              case c_kdf
+              solve( !KU( encaps(z, pk(~ltk.1)) ) @ #vk.16 )
+                case c_encaps
+                solve( !KU( cert(x, sign(<x, C, 'chip'>, ca_sk), C) ) @ #vk.25 )
+                  case CA_Sign_ltk
+                  solve( !KU( kdf(<'TCNF', r1>, z) ) @ #vk.19 )
+                    case c_kdf
+                    solve( !KU( kdf(<'TENC', r1>, z) ) @ #vk.26 )
+                      case c_kdf
+                      solve( !KU( kdf(<'TMAC', r1>, z) ) @ #vk.29 )
+                        case c_kdf
+                        solve( !KU( pk(~ltk.1) ) @ #vk.34 )
+                          case CA_Sign_ltk
+                          SOLVED // trace found
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+lemma pfs:
+  all-traces
+  "∀ C T k sid #i #j.
+    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
+       (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
+      (¬(∃ #m. (Corrupted( C ) @ #m) ∧ (#m < #j)))) ∧
+     (¬(∃ #m. (Corrupted( T ) @ #m) ∧ (#m < #j)))) ⇒
+    ((¬(∃ #m. K( k ) @ #m)) ∨ (∃ #m. Revealed( sid ) @ #m))"
+/*
+guarded formula characterizing all counter-examples:
+"∃ C T k sid #i #j.
+  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
+  (Completed( k, sid, T, 'terminal', C ) @ #j)
+ ∧
+  (∀ #m. (Corrupted( C ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∀ #m. (Corrupted( T ) @ #m) ⇒ ¬(#m < #j)) ∧
+  (∃ #m. (K( k ) @ #m)) ∧
+  (∀ #m. (Revealed( sid ) @ #m) ⇒ ⊥)"
+*/
+simplify
+solve( Completed( k, sid, C, 'chip', T ) @ #i )
+  case TA_COMPLETE_C_case_1
+  solve( TAChallengeC( <$C, iid>, certT, id_c, r1, r2, kTMAC, kTCNF
+         ) ▶₁ #i )
+    case TA_CHALLENGE_C
+    solve( !Ltk( $C, ~skC, 'chip' ) ▶₂ #i )
+      case Generate_chip_key_pair
+      solve( !Cert( $C, certC, 'chip' ) ▶₃ #i )
+        case CA_Sign_ltk
+        solve( Completed( kdf(<'KEY', 
+                               cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                               cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                              z.1),
+                          <cert(z, sign(<z, T, 'terminal'>, ca_sk), T), 
+                           cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, cip>,
+                          T, 'terminal', $C
+               ) @ #j )
+          case CA_FINISH_T
+          solve( TAResponseT( <$T, iid.1>, id_c.1,
+                              cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, <z.1, cip>
+                 ) ▶₁ #j )
+            case TA_RESPONSE_T
+            solve( !Cert( $T, cert(z, sign(<z, $T, 'terminal'>, ca_sk), $T),
+                          'terminal'
+                   ) ▶₂ #j )
+              case CA_Sign_ltk
+              solve( splitEqs(2) )
+                case split_case_1
+                solve( !KU( kdf(<'KEY', 
+                                 cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                 cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                 encaps(~k, pk(~ltk))>,
+                                ~k)
+                       ) @ #vk )
+                  case c_kdf
+                  solve( !KU( ~k ) @ #vk.32 )
+                    case TA_RESPONSE_T
+                    solve( !KU( ~r2 ) @ #vk.36 )
+                      case TA_CHALLENGE_C
+                      solve( !KU( ~ltk ) @ #vk.37 )
+                        case Corrupt_ltk
+                        solve( !KU( mac(<'CA', 
+                                         cert(pk(~ltk.1), sign(<pk(~ltk.1), $T, 'terminal'>, ca_sk), $T), 
+                                         cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2, 
+                                         encaps(~k, pk(~ltk))>,
+                                        kdf(<'TMAC', ~r1>, ~kTA))
+                               ) @ #vk.13 )
+                          case TA_RESPONSE_T
+                          solve( !KU( senc(<
+                                            cert(pk(~ltk), sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), ~r2>,
+                                           kdf(<'TENC', ~r1>, ~kTA))
+                                 ) @ #vk.34 )
+                            case TA_CHALLENGE_C
+                            solve( !KU( encaps(~kTA, pk(~skT)) ) @ #vk.34 )
+                              case TA_CHALLENGE_C
+                              solve( !KU( kdf(<'TENC', ~r1>, ~kTA) ) @ #vk.38 )
+                                case c_kdf
+                                solve( !KU( ~kTA ) @ #vk.40 )
+                                  case TA_CHALLENGE_C
+                                  solve( !KU( ~skT ) @ #vk.42 )
+                                    case Corrupt_ltk
+                                    solve( !KU( ~r1 ) @ #vk.37 )
+                                      case TA_CHALLENGE_C
+                                      solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T, 'terminal'>, ca_sk), $T)
+                                             ) @ #vk.29 )
+                                        case CA_Sign_ltk
+                                        solve( !KU( kdf(<'TCNF', ~r1>, ~kTA) ) @ #vk.25 )
+                                          case TA_RESPONSE_T
+                                          solve( !KU( encaps(~kTA, pk(~skT.1)) ) @ #vk.48 )
+                                            case TA_CHALLENGE_C
+                                            solve( !KU( senc(<cert(z, sign(<z, x, 'chip'>, ca_sk), x), z.1>,
+                                                             kdf(<'TENC', ~r1>, ~kTA))
+                                                   ) @ #vk.48 )
+                                              case TA_CHALLENGE_C
+                                              solve( !KU( kdf(<'CNF', 
+                                                               cert(pk(~skT),
+                                                                    sign(<pk(~skT), $T, 'terminal'>, ca_sk),
+                                                                    $T), 
+                                                               cert(pk(~ltk),
+                                                                    sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C), 
+                                                               ~r2, encaps(~k, pk(~ltk))>,
+                                                              ~k)
+                                                     ) @ #vk.34 )
+                                                case TA_COMPLETE_C
+                                                solve( !KU( encaps(~k, pk(~ltk)) ) @ #vk.24 )
+                                                  case TA_RESPONSE_T
+                                                  solve( !KU( cert(pk(~ltk),
+                                                                   sign(<pk(~ltk), $C, 'chip'>, ca_sk), $C)
+                                                         ) @ #vk.42 )
+                                                    case CA_Sign_ltk
+                                                    SOLVED // trace found
+                                                  qed
+                                                qed
+                                              qed
+                                            qed
+                                          qed
+                                        qed
+                                      qed
+                                    qed
+                                  qed
+                                qed
+                              qed
+                            qed
+                          qed
+                        qed
+                      qed
+                    qed
+                  qed
+                qed
+              qed
+            qed
+          qed
+        qed
+      qed
+    qed
+  qed
+qed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* All wellformedness checks were successful. */
+
+/*
+Generated from:
+Tamarin version 1.8.0
+Maude version 3.3.1
+Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
+Compiled at: 2024-01-16 15:38:46.116852601 UTC
+*/
+
+end
+
+==============================================================================
+summary of summaries:
+
+analyzed: tmp.spthy
+
+  processing time: 1594.74s
+  
+  session_exist (exists-trace): verified (20 steps)
+  two_session_exist (exists-trace): verified (46 steps)
+  weak_agreement_C (all-traces): verified (12 steps)
+  weak_agreement_T (all-traces): verified (74 steps)
+  agreement_C (all-traces): verified (40 steps)
+  agreement_T (all-traces): verified (74 steps)
+  aliveness (all-traces): verified (76 steps)
+  session_uniqueness (all-traces): verified (64 steps)
+  consistency (all-traces): verified (82 steps)
+  key_secrecy (all-traces): verified (40 steps)
+  chip_hiding (all-traces): falsified - found trace (19 steps)
+  nonRepudiation_terminal (exists-trace): verified (15 steps)
+  nonRepudiation_chip (exists-trace): verified (15 steps)
+  pfs (all-traces): falsified - found trace (28 steps)
+
+==============================================================================
diff --git a/results/Basic/eac_tamarin.out.45221786 b/results/Basic/eac_tamarin.out.45221786
deleted file mode 100644
index fbcf283d06803d970736be3365645fa6879e6675..0000000000000000000000000000000000000000
--- a/results/Basic/eac_tamarin.out.45221786
+++ /dev/null
@@ -1,5578 +0,0 @@
-maude tool: 'maude'
- checking version: 3.3.1. OK.
- checking installation: OK.
-theory BasicEAC begin
-
-// Function signature and definition of the equational theory E
-
-builtins: diffie-hellman
-functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
-           cert_sig/1, fst/1, kdf_enc/2, kdf_mac/2, mac/2, pair/2, pk/1, sign/2,
-           snd/1, true/0, verify/3
-equations:
-    cert_id(cert(pk, s, id)) = id,
-    cert_pk(cert(pk, s, id)) = pk,
-    cert_sig(cert(pk, s, id)) = s,
-    fst(<x.1, x.2>) = x.1,
-    snd(<x.1, x.2>) = x.2,
-    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
-
-
-
-
-
-
-
-
-
-macros:
-    verify_cert( cert ) = verify(cert_sig(cert),pair(cert_pk(cert),cert_id(cert)),pk(ca_sk))
-
-rule (modulo E) Publish_ca_pk:
-   [ ] --> [ Out( pk(ca_sk) ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Generate_static_ltk:
-   [ Fr( ~ltk ) ]
-  -->
-   [ !Pk( $A, pk(~ltk) ), !Ltk( $A, ~ltk ), Out( pk(~ltk) ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Generate_static_dh:
-   [ Fr( ~ltk ) ]
-  -->
-   [ !PkDH( $A, 'g'^~ltk ), !LtkDH( $A, ~ltk ), Out( 'g'^~ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_Sign_ltk:
-   [ !Pk( A, pk ) ]
-  -->
-   [
-   !Cert( A, cert(pk, sign(<pk, A>, ca_sk), A) ),
-   Out( cert(pk, sign(<pk, A>, ca_sk), A) )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_Sign_dh:
-   [ !PkDH( A, pk ) ]
-  -->
-   [
-   !CertDH( A, cert(pk, sign(<pk, A>, ca_sk), A) ),
-   Out( cert(pk, sign(<pk, A>, ca_sk), A) )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_ltk:
-   [ !Ltk( $A, ltk ) ] --[ Corrupted( $A ) ]-> [ Out( ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_dh:
-   [ !LtkDH( $A, ltk ) ] --[ Corrupted( $A ) ]-> [ Out( ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_session:
-   [ !SessionReveal( uid, k ) ] --[ Revealed( uid ) ]-> [ Out( k ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) TA_INIT_T:
-   [ !Cert( $T, certT ), Fr( ~skTe ), Fr( ~iid ) ]
-  -->
-   [
-   Out( <certT, 'g'^~skTe, 'TA_INIT', '1', 't'> ),
-   TAInitT( <$T, ~iid>, ~skTe )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) TA_CHALLENGE_C:
-   [
-   In( <certT, pkTe, 'TA_INIT', '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ),
-   Fr( ~iid )
-   ]
-  --[ Eq( verify_cert(certT), true ) ]->
-   [
-   Out( <~id_c, ~r1, 'TA_CHALLENGE', '2', 'c'> ),
-   TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
-   ]
-
-  /*
-  rule (modulo AC) TA_CHALLENGE_C:
-     [
-     In( <certT, pkTe, 'TA_INIT', '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ),
-     Fr( ~iid )
-     ]
-    --[ Eq( z, true ) ]->
-     [
-     Out( <~id_c, ~r1, 'TA_CHALLENGE', '2', 'c'> ),
-     TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
-     ]
-    variants (modulo AC)
-    1. certT = certT.15
-       z     = verify(cert_sig(certT.15),
-                      <cert_pk(certT.15), cert_id(certT.15)>, pk(ca_sk))
-    
-    2. certT = cert(x.16, sign(<x.16, x.17>, ca_sk), x.17)
-       z     = true
-    
-    3. certT = cert(x.17, x.18, x.19)
-       z     = verify(x.18, <x.17, x.19>, pk(ca_sk))
-  */
-
-rule (modulo E) TA_RESPONSE_T:
-   [
-   In( <id_c, r1, 'TA_CHALLENGE', '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
-   !Ltk( $T, ~skT )
-   ]
-  -->
-   [
-   Out( <sign(<id_c, r1, 'g'^skTe>, ~skT), 'TA_RESPONSE', '3', 't'> ),
-   TAResponseT( <$T, iid>, skTe, id_c )
-   ]
-
-  /*
-  rule (modulo AC) TA_RESPONSE_T:
-     [
-     In( <id_c, r1, 'TA_CHALLENGE', '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
-     !Ltk( $T, ~skT )
-     ]
-    -->
-     [
-     Out( <sign(<id_c, r1, z>, ~skT), 'TA_RESPONSE', '3', 't'> ),
-     TAResponseT( <$T, iid>, skTe, id_c )
-     ]
-    variants (modulo AC)
-    1. skTe  = skTe.12
-       z     = 'g'^skTe.12
-    
-    2. skTe  = one
-       z     = 'g'
-  */
-
-rule (modulo E) TA_COMPLETE_C:
-   [
-   In( <s, 'TA_RESPONSE', '3', 't'> ),
-   TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 )
-   ]
-  --[ Eq( verify(s, <id_c, r1, pkTe>, cert_pk(certT)), true ) ]->
-   [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
-
-  /*
-  rule (modulo AC) TA_COMPLETE_C:
-     [
-     In( <s, 'TA_RESPONSE', '3', 't'> ),
-     TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 )
-     ]
-    --[ Eq( z, true ) ]->
-     [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
-    variants (modulo AC)
-    1. certT = certT.18
-       id_c  = id_c.19
-       pkTe  = pkTe.21
-       r1    = r1.22
-       s     = s.23
-       z     = verify(s.23, <id_c.19, r1.22, pkTe.21>, cert_pk(certT.18))
-    
-    2. certT = cert(x.60, x.61, x.62)
-       id_c  = id_c.33
-       pkTe  = pkTe.35
-       r1    = r1.36
-       s     = s.37
-       z     = verify(s.37, <id_c.33, r1.36, pkTe.35>, x.60)
-    
-    3. certT = cert(pk(x.60), x.61, x.62)
-       id_c  = id_c.33
-       pkTe  = pkTe.35
-       r1    = r1.36
-       s     = sign(<id_c.33, r1.36, pkTe.35>, x.60)
-       z     = true
-  */
-
-rule (modulo E) CA_INIT_C:
-   [
-   !CertDH( $C, certC ), Fr( ~r2 ),
-   TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 )
-   ]
-  -->
-   [
-   Out( <certC, 'CA_INIT', '4', 'c'> ),
-   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, ~r2 )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_INIT_T:
-   [
-   In( <certC, 'CA_INIT', '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c )
-   ]
-  --[ Eq( verify_cert(certC), true ) ]->
-   [
-   Out( <'g'^skTe, 'CA_COMMIT', '5', 't'> ),
-   CAInitT( <$T, iid>, skTe, id_c, certC )
-   ]
-
-  /*
-  rule (modulo AC) CA_INIT_T:
-     [
-     In( <certC, 'CA_INIT', '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c )
-     ]
-    --[ Eq( z.1, true ) ]->
-     [
-     Out( <z, 'CA_COMMIT', '5', 't'> ),
-     CAInitT( <$T, iid>, skTe, id_c, certC )
-     ]
-    variants (modulo AC)
-    1. certC = certC.15
-       skTe  = one
-       z     = 'g'
-       z.1   = verify(cert_sig(certC.15),
-                      <cert_pk(certC.15), cert_id(certC.15)>, pk(ca_sk))
-    
-    2. certC = certC.18
-       skTe  = skTe.21
-       z     = 'g'^skTe.21
-       z.1   = verify(cert_sig(certC.18),
-                      <cert_pk(certC.18), cert_id(certC.18)>, pk(ca_sk))
-    
-    3. certC = cert(x.16, sign(<x.16, x.17>, ca_sk), x.17)
-       skTe  = one
-       z     = 'g'
-       z.1   = true
-    
-    4. certC = cert(x.17, x.18, x.19)
-       skTe  = one
-       z     = 'g'
-       z.1   = verify(x.18, <x.17, x.19>, pk(ca_sk))
-    
-    5. certC = cert(x.115, sign(<x.115, x.116>, ca_sk), x.116)
-       skTe  = skTe.61
-       z     = 'g'^skTe.61
-       z.1   = true
-    
-    6. certC = cert(x.116, x.117, x.118)
-       skTe  = skTe.62
-       z     = 'g'^skTe.62
-       z.1   = verify(x.117, <x.116, x.118>, pk(ca_sk))
-  */
-
-rule (modulo E) CA_FINISH_C:
-   [
-   In( <pkTe_t, 'CA_COMMIT', '5', 't'> ),
-   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ), !LtkDH( $C, ~skC ),
-   !PkDH( $C, pkC )
-   ]
-  --[
-  Eq( pkTe_t, pkTe ),
-  Completed( <kdf_enc(pkTe^~skC, r2), kdf_mac(pkTe^~skC, r2)>,
-             <pkTe, pkC, id_c, r2>, $C, 'chip', cert_id(certT)
-  )
-  ]->
-   [
-   Out( <r2, mac(kdf_mac(pkTe^~skC, r2), pkTe), 'CA_RESPONSE', '6', 'c'> ),
-   CAFinishC( $C, cert_id(certT), kdf_enc(pkTe^~skC, r2) ), Out( iid )
-   ]
-
-  /*
-  rule (modulo AC) CA_FINISH_C:
-     [
-     In( <pkTe_t, 'CA_COMMIT', '5', 't'> ),
-     CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ), !LtkDH( $C, ~skC ),
-     !PkDH( $C, pkC )
-     ]
-    --[
-    Eq( pkTe_t, pkTe ),
-    Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, <pkTe, pkC, id_c, r2>, $C,
-               'chip', z.1
-    )
-    ]->
-     [
-     Out( <r2, mac(kdf_mac(z, r2), pkTe), 'CA_RESPONSE', '6', 'c'> ),
-     CAFinishC( $C, z.1, kdf_enc(z, r2) ), Out( iid )
-     ]
-    variants (modulo AC)
-     1. ~skC  = ~skC.25
-        certT = certT.26
-        pkTe  = pkTe.30
-        z     = pkTe.30^~skC.25
-        z.1   = cert_id(certT.26)
-    
-     2. ~skC  = ~skC.32
-        certT = certT.33
-        pkTe  = z.44^inv(~skC.32)
-        z     = z.44
-        z.1   = cert_id(certT.33)
-    
-     3. ~skC  = ~skC.129
-        certT = certT.130
-        pkTe  = x.254^x.255
-        z     = x.254^(~skC.129*x.255)
-        z.1   = cert_id(certT.130)
-    
-     4. ~skC  = ~skC.129
-        certT = cert(x.254, x.255, z.145)
-        pkTe  = pkTe.134
-        z     = pkTe.134^~skC.129
-        z.1   = z.145
-    
-     5. ~skC  = ~skC.130
-        certT = cert(x.256, x.257, z.146)
-        pkTe  = z.142^inv(~skC.130)
-        z     = z.142
-        z.1   = z.146
-    
-     6. ~skC  = ~skC.134
-        certT = certT.135
-        pkTe  = x.264^inv((~skC.134*x.265))
-        z     = x.264^inv(x.265)
-        z.1   = cert_id(certT.135)
-    
-     7. ~skC  = ~skC.134
-        certT = certT.135
-        pkTe  = x.264^(x.265*inv(~skC.134))
-        z     = x.264^x.265
-        z.1   = cert_id(certT.135)
-    
-     8. ~skC  = ~skC.135
-        certT = certT.136
-        pkTe  = x.265^(x.266*inv((~skC.135*x.267)))
-        z     = x.265^(x.266*inv(x.267))
-        z.1   = cert_id(certT.136)
-    
-     9. ~skC  = ~skC.135
-        certT = cert(x.260, x.261, z.151)
-        pkTe  = x.266^x.267
-        z     = x.266^(~skC.135*x.267)
-        z.1   = z.151
-    
-    10. ~skC  = ~skC.136
-        certT = cert(x.262, x.263, z.152)
-        pkTe  = x.268^inv((~skC.136*x.269))
-        z     = x.268^inv(x.269)
-        z.1   = z.152
-    
-    11. ~skC  = ~skC.136
-        certT = cert(x.262, x.263, z.152)
-        pkTe  = x.268^(x.269*inv(~skC.136))
-        z     = x.268^x.269
-        z.1   = z.152
-    
-    12. ~skC  = ~skC.137
-        certT = cert(x.263, x.264, z.153)
-        pkTe  = x.269^(x.270*inv((~skC.137*x.271)))
-        z     = x.269^(x.270*inv(x.271))
-        z.1   = z.153
-    
-    13. certT = certT.20
-        pkTe  = DH_neutral
-        z     = DH_neutral
-        z.1   = cert_id(certT.20)
-    
-    14. certT = cert(x.46, x.47, z.33)
-        pkTe  = DH_neutral
-        z     = DH_neutral
-        z.1   = z.33
-  */
-
-rule (modulo E) CA_FINISH_T:
-   [
-   In( <r2, tag, 'CA_RESPONSE', '6', 'c'> ),
-   CAInitT( <$T, iid>, skTe, id_c, certC )
-   ]
-  --[
-  Eq( mac(kdf_mac(cert_pk(certC)^skTe, r2), 'g'^skTe), tag ),
-  Completed( <kdf_enc(cert_pk(certC)^skTe, r2), 
-              kdf_mac(cert_pk(certC)^skTe, r2)>,
-             <'g'^skTe, cert_pk(certC), id_c, r2>, $T, 'terminal', cert_id(certC)
-  ),
-  Finished( <'g'^skTe, cert_pk(certC), id_c, r2> )
-  ]->
-   [
-   CAFinishT( cert_id(certC), $T, kdf_enc(cert_pk(certC)^skTe, r2) ),
-   !SessionReveal( <$T, iid>, skTe ), Out( iid )
-   ]
-
-  /*
-  rule (modulo AC) CA_FINISH_T:
-     [
-     In( <r2, tag, 'CA_RESPONSE', '6', 'c'> ),
-     CAInitT( <$T, iid>, skTe, id_c, certC )
-     ]
-    --[
-    Eq( mac(kdf_mac(z.1, r2), z.2), tag ),
-    Completed( <kdf_enc(z.1, r2), kdf_mac(z.1, r2)>, <z.2, z.3, id_c, r2>,
-               $T, 'terminal', z
-    ),
-    Finished( <z.2, z.3, id_c, r2> )
-    ]->
-     [
-     CAFinishT( z, $T, kdf_enc(z.1, r2) ), !SessionReveal( <$T, iid>, skTe ),
-     Out( iid )
-     ]
-    variants (modulo AC)
-     1. certC = certC.16
-        skTe  = one
-        z     = cert_id(certC.16)
-        z.1   = cert_pk(certC.16)
-        z.2   = 'g'
-        z.3   = cert_pk(certC.16)
-    
-     2. certC = certC.20
-        skTe  = skTe.24
-        z     = cert_id(certC.20)
-        z.1   = cert_pk(certC.20)^skTe.24
-        z.2   = 'g'^skTe.24
-        z.3   = cert_pk(certC.20)
-    
-     3. certC = cert(z.33, x.52, z.32)
-        skTe  = one
-        z     = z.32
-        z.1   = z.33
-        z.2   = 'g'
-        z.3   = z.33
-    
-     4. certC = cert(z.55, x.87, z.52)
-        skTe  = skTe.47
-        z     = z.52
-        z.1   = z.55^skTe.47
-        z.2   = 'g'^skTe.47
-        z.3   = z.55
-    
-     5. certC = cert(DH_neutral, x.85, z.51)
-        skTe  = skTe.46
-        z     = z.51
-        z.1   = DH_neutral
-        z.2   = 'g'^skTe.46
-        z.3   = DH_neutral
-    
-     6. certC = cert(z.34^x.53, x.54, z.33)
-        skTe  = inv(x.53)
-        z     = z.33
-        z.1   = z.34
-        z.2   = 'g'^inv(x.53)
-        z.3   = z.34^x.53
-    
-     7. certC = cert(z.35^(x.54*inv(x.55)), x.56, z.34)
-        skTe  = (x.55*inv(x.54))
-        z     = z.34
-        z.1   = z.35
-        z.2   = 'g'^(x.55*inv(x.54))
-        z.3   = z.35^(x.54*inv(x.55))
-    
-     8. certC = cert(x.53^(x.54*x.55), x.56, z.34)
-        skTe  = inv(x.54)
-        z     = z.34
-        z.1   = x.53^x.55
-        z.2   = 'g'^inv(x.54)
-        z.3   = x.53^(x.54*x.55)
-    
-     9. certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.35)
-        skTe  = (x.57*inv(x.56))
-        z     = z.35
-        z.1   = x.54^x.55
-        z.2   = 'g'^(x.57*inv(x.56))
-        z.3   = x.54^(x.55*x.56*inv(x.57))
-    
-    10. certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.35)
-        skTe  = (x.57*inv(x.55))
-        z     = z.35
-        z.1   = x.54^inv(x.56)
-        z.2   = 'g'^(x.57*inv(x.55))
-        z.3   = x.54^(x.55*inv((x.56*x.57)))
-    
-    11. certC = cert(z.54^inv(skTe.48), x.89, z.53)
-        skTe  = skTe.48
-        z     = z.53
-        z.1   = z.54
-        z.2   = 'g'^skTe.48
-        z.3   = z.54^inv(skTe.48)
-    
-    12. certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))), x.60, z.36)
-        skTe  = (x.59*inv(x.57))
-        z     = z.36
-        z.1   = x.55^(x.56*inv(x.58))
-        z.2   = 'g'^(x.59*inv(x.57))
-        z.3   = x.55^(x.56*x.57*inv((x.58*x.59)))
-    
-    13. certC = cert(x.57^x.58, x.59, z.38)
-        skTe  = inv((x.58*x.64))
-        z     = z.38
-        z.1   = x.57^inv(x.64)
-        z.2   = 'g'^inv((x.58*x.64))
-        z.3   = x.57^x.58
-    
-    14. certC = cert(x.57^x.58, x.59, z.38)
-        skTe  = (x.64*inv(x.58))
-        z     = z.38
-        z.1   = x.57^x.64
-        z.2   = 'g'^(x.64*inv(x.58))
-        z.3   = x.57^x.58
-    
-    15. certC = cert(x.57^inv(x.58), x.59, z.38)
-        skTe  = inv(x.64)
-        z     = z.38
-        z.1   = x.57^inv((x.58*x.64))
-        z.2   = 'g'^inv(x.64)
-        z.3   = x.57^inv(x.58)
-    
-    16. certC = cert(x.57^inv(x.58), x.59, z.38)
-        skTe  = (x.58*x.64)
-        z     = z.38
-        z.1   = x.57^x.64
-        z.2   = 'g'^(x.58*x.64)
-        z.3   = x.57^inv(x.58)
-    
-    17. certC = cert(x.58^x.59, x.60, z.39)
-        skTe  = (x.65*inv((x.59*x.66)))
-        z     = z.39
-        z.1   = x.58^(x.65*inv(x.66))
-        z.2   = 'g'^(x.65*inv((x.59*x.66)))
-        z.3   = x.58^x.59
-    
-    18. certC = cert(x.58^inv(x.59), x.60, z.39)
-        skTe  = (x.65*inv(x.66))
-        z     = z.39
-        z.1   = x.58^(x.65*inv((x.59*x.66)))
-        z.2   = 'g'^(x.65*inv(x.66))
-        z.3   = x.58^inv(x.59)
-    
-    19. certC = cert(x.58^inv((x.59*x.60)), x.61, z.39)
-        skTe  = (x.59*x.66)
-        z     = z.39
-        z.1   = x.58^(x.66*inv(x.60))
-        z.2   = 'g'^(x.59*x.66)
-        z.3   = x.58^inv((x.59*x.60))
-    
-    20. certC = cert(x.58^inv((x.59*x.60)), x.61, z.39)
-        skTe  = (x.59*inv(x.66))
-        z     = z.39
-        z.1   = x.58^inv((x.60*x.66))
-        z.2   = 'g'^(x.59*inv(x.66))
-        z.3   = x.58^inv((x.59*x.60))
-    
-    21. certC = cert(x.58^(x.59*x.60), x.61, z.39)
-        skTe  = inv((x.59*x.66))
-        z     = z.39
-        z.1   = x.58^(x.60*inv(x.66))
-        z.2   = 'g'^inv((x.59*x.66))
-        z.3   = x.58^(x.59*x.60)
-    
-    22. certC = cert(x.58^(x.59*x.60), x.61, z.39)
-        skTe  = (x.66*inv(x.59))
-        z     = z.39
-        z.1   = x.58^(x.60*x.66)
-        z.2   = 'g'^(x.66*inv(x.59))
-        z.3   = x.58^(x.59*x.60)
-    
-    23. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = inv(x.66)
-        z     = z.39
-        z.1   = x.58^(x.59*inv((x.60*x.66)))
-        z.2   = 'g'^inv(x.66)
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    24. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = inv((x.59*x.66))
-        z     = z.39
-        z.1   = x.58^inv((x.60*x.66))
-        z.2   = 'g'^inv((x.59*x.66))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    25. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*x.66)
-        z     = z.39
-        z.1   = x.58^(x.59*x.66)
-        z.2   = 'g'^(x.60*x.66)
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    26. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*x.66*inv(x.59))
-        z     = z.39
-        z.1   = x.58^x.66
-        z.2   = 'g'^(x.60*x.66*inv(x.59))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    27. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*inv((x.59*x.66)))
-        z     = z.39
-        z.1   = x.58^inv(x.66)
-        z.2   = 'g'^(x.60*inv((x.59*x.66)))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    28. certC = cert(x.59^inv((x.60*x.61)), x.62, z.40)
-        skTe  = (x.60*x.67*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.60*x.67*inv(x.68))
-        z.3   = x.59^inv((x.60*x.61))
-    
-    29. certC = cert(x.59^(x.60*x.61), x.62, z.40)
-        skTe  = (x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.61*x.67*inv(x.68))
-        z.2   = 'g'^(x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*x.61)
-    
-    30. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = inv((x.61*x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*inv((x.62*x.68)))
-        z.2   = 'g'^inv((x.61*x.68))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    31. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = (x.62*x.68*inv(x.60))
-        z     = z.40
-        z.1   = x.59^(x.61*x.68)
-        z.2   = 'g'^(x.62*x.68*inv(x.60))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    32. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = (x.62*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.61*inv(x.68))
-        z.2   = 'g'^(x.62*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    33. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.61*x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.67*inv(x.68))
-        z.2   = 'g'^(x.61*x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    34. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.67*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.67*inv(x.68))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    35. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    36. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*x.68)
-        z     = z.40
-        z.1   = x.59^(x.60*x.68*inv(x.62))
-        z.2   = 'g'^(x.61*x.68)
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    37. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*x.68*inv(x.60))
-        z     = z.40
-        z.1   = x.59^(x.68*inv(x.62))
-        z.2   = 'g'^(x.61*x.68*inv(x.60))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    38. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*inv((x.62*x.68)))
-        z.2   = 'g'^(x.61*inv(x.68))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    39. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^inv((x.62*x.68))
-        z.2   = 'g'^(x.61*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    40. certC = cert(x.60^(x.61*x.62*inv(x.63)), x.64, z.41)
-        skTe  = (x.63*x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*x.69*inv(x.70))
-        z.2   = 'g'^(x.63*x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv(x.63))
-    
-    41. certC = cert(x.60^(x.61*x.62*inv(x.63)), x.64, z.41)
-        skTe  = (x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv(x.63))
-    
-    42. certC = cert(x.60^(x.61*x.62*inv((x.63*x.64))), x.65, z.41)
-        skTe  = (x.63*x.70*inv(x.61))
-        z     = z.41
-        z.1   = x.60^(x.62*x.70*inv(x.64))
-        z.2   = 'g'^(x.63*x.70*inv(x.61))
-        z.3   = x.60^(x.61*x.62*inv((x.63*x.64)))
-    
-    43. certC = cert(x.60^(x.61*x.62*inv((x.63*x.64))), x.65, z.41)
-        skTe  = (x.63*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*inv((x.64*x.70)))
-        z.2   = 'g'^(x.63*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv((x.63*x.64)))
-    
-    44. certC = cert(x.60^(x.61*inv((x.62*x.63))), x.64, z.41)
-        skTe  = (x.62*x.69*inv(x.70))
-        z     = z.41
-        z.1   = x.60^(x.61*x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.62*x.69*inv(x.70))
-        z.3   = x.60^(x.61*inv((x.62*x.63)))
-    
-    45. certC = cert(x.60^(x.61*inv((x.62*x.63))), x.64, z.41)
-        skTe  = (x.62*x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.62*x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*inv((x.62*x.63)))
-    
-    46. certC = cert(x.61^(x.62*x.63*inv((x.64*x.65))), x.66, z.42)
-        skTe  = (x.64*x.71*inv((x.62*x.72)))
-        z     = z.42
-        z.1   = x.61^(x.63*x.71*inv((x.65*x.72)))
-        z.2   = 'g'^(x.64*x.71*inv((x.62*x.72)))
-        z.3   = x.61^(x.62*x.63*inv((x.64*x.65)))
-    
-    47. certC = cert(x.87^x.88, x.89, z.53)
-        skTe  = skTe.48
-        z     = z.53
-        z.1   = x.87^(skTe.48*x.88)
-        z.2   = 'g'^skTe.48
-        z.3   = x.87^x.88
-    
-    48. certC = cert(x.88^inv((skTe.49*x.89)), x.91, z.54)
-        skTe  = skTe.49
-        z     = z.54
-        z.1   = x.88^inv(x.89)
-        z.2   = 'g'^skTe.49
-        z.3   = x.88^inv((skTe.49*x.89))
-    
-    49. certC = cert(x.88^(x.89*inv(skTe.49)), x.91, z.54)
-        skTe  = skTe.49
-        z     = z.54
-        z.1   = x.88^x.89
-        z.2   = 'g'^skTe.49
-        z.3   = x.88^(x.89*inv(skTe.49))
-    
-    50. certC = cert(x.89^(x.90*inv((skTe.50*x.91))), x.93, z.55)
-        skTe  = skTe.50
-        z     = z.55
-        z.1   = x.89^(x.90*inv(x.91))
-        z.2   = 'g'^skTe.50
-        z.3   = x.89^(x.90*inv((skTe.50*x.91)))
-  */
-
-restriction Equality:
-  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
-  // safety formula
-
-lemma aliveness:
-  all-traces
-  "∀ k sid A role B #i #t.
-    (((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ∧
-     (¬(∃ #k.1. Corrupted( B ) @ #k.1))) ⇒
-    (∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j)"
-/*
-guarded formula characterizing all counter-examples:
-"∃ k sid A role B #i #t.
-  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
- ∧
-  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥) ∧
-  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥)"
-*/
-simplify
-solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
-  case CA_INIT_T
-  solve( Completed( k, <'g'^~skTe, z.1, id_c, r2>, A, role, B ) @ #i )
-    case CA_FINISH_C
-    solve( CAInitC( <$C, iid>, certT, 'g'^~skTe, id_c, r1, r2 ) ▶₁ #i )
-      case CA_INIT_C
-      solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-        case Generate_static_dh
-        solve( !PkDH( $C, z ) ▶₃ #i )
-          case Generate_static_dh
-          solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, x) ) @ #vk.37 )
-            case TA_RESPONSE_T
-            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), ~r2), 'g'^~skTe) ) @ #vk.4 )
-              case CA_FINISH_C
-              solve( !KU( cert('g'^~ltk, sign(<'g'^~ltk, z>, ca_sk), z) ) @ #vk.18 )
-                case CA_INIT_C
-                solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.45 )
-                  case TA_RESPONSE_T
-                  solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.45 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_cert
-                    solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.54 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.57 )
-                    qed
-                  qed
-                next
-                  case c_sign
-                  solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.44 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_cert
-                    solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.55 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.58 )
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_dh
-                solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.40 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.44 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.47 )
-                  qed
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<'g'^~ltk, z>, ca_sk) ) @ #vk.44 )
-                  case CA_INIT_C
-                  solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.48 )
-                    case TA_RESPONSE_T
-                    solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.46 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_cert
-                      solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.57 )
-                        case CA_Sign_ltk
-                        by contradiction /* from formulas */
-                      next
-                        case TA_INIT_T
-                        by contradiction /* from formulas */
-                      next
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.60 )
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.45 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_cert
-                      solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.58 )
-                        case CA_Sign_ltk
-                        by contradiction /* from formulas */
-                      next
-                        case TA_INIT_T
-                        by contradiction /* from formulas */
-                      next
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.61 )
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.41 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_cert
-                    solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.47 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.50 )
-                    qed
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.47 )
-                qed
-              qed
-            next
-              case c_mac
-              solve( !KU( kdf_mac('g'^(~ltk*~skTe), ~r2) ) @ #vk.43 )
-                case c_kdf_mac
-                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.44 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.48 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case CA_INIT_T
-                  by contradiction /* cyclic */
-                next
-                  case CA_Sign_dh
-                  solve( !KU( ~skTe ) @ #vk.45 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.45 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.45 )
-                    case Reveal_dh
-                    solve( !KU( cert('g'^~ltk, sign(<'g'^~ltk, z>, ca_sk), z) ) @ #vk.23 )
-                      case CA_INIT_C
-                      solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.48 )
-                        case TA_RESPONSE_T
-                        solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.48 )
-                          case CA_Sign_ltk
-                          by contradiction /* from formulas */
-                        next
-                          case TA_INIT_T
-                          by contradiction /* from formulas */
-                        next
-                          case c_cert
-                          solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.57 )
-                            case CA_Sign_ltk
-                            by contradiction /* from formulas */
-                          next
-                            case TA_INIT_T
-                            by contradiction /* from formulas */
-                          next
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.60 )
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.47 )
-                          case CA_Sign_ltk
-                          by contradiction /* from formulas */
-                        next
-                          case TA_INIT_T
-                          by contradiction /* from formulas */
-                        next
-                          case c_cert
-                          solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.58 )
-                            case CA_Sign_ltk
-                            by contradiction /* from formulas */
-                          next
-                            case TA_INIT_T
-                            by contradiction /* from formulas */
-                          next
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.61 )
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.43 )
-                        case CA_Sign_ltk
-                        by contradiction /* from formulas */
-                      next
-                        case TA_INIT_T
-                        by contradiction /* from formulas */
-                      next
-                        case c_cert
-                        solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.47 )
-                          case CA_Sign_ltk
-                          by contradiction /* from formulas */
-                        next
-                          case TA_INIT_T
-                          by contradiction /* from formulas */
-                        next
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.50 )
-                        qed
-                      qed
-                    next
-                      case c_cert
-                      solve( !KU( sign(<'g'^~ltk, z>, ca_sk) ) @ #vk.47 )
-                        case CA_INIT_C
-                        solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.51 )
-                          case TA_RESPONSE_T
-                          solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.49 )
-                            case CA_Sign_ltk
-                            by contradiction /* from formulas */
-                          next
-                            case TA_INIT_T
-                            by contradiction /* from formulas */
-                          next
-                            case c_cert
-                            solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.60 )
-                              case CA_Sign_ltk
-                              by contradiction /* from formulas */
-                            next
-                              case TA_INIT_T
-                              by contradiction /* from formulas */
-                            next
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.63 )
-                            qed
-                          qed
-                        next
-                          case c_sign
-                          solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.48 )
-                            case CA_Sign_ltk
-                            by contradiction /* from formulas */
-                          next
-                            case TA_INIT_T
-                            by contradiction /* from formulas */
-                          next
-                            case c_cert
-                            solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.61 )
-                              case CA_Sign_ltk
-                              by contradiction /* from formulas */
-                            next
-                              case TA_INIT_T
-                              by contradiction /* from formulas */
-                            next
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.64 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.44 )
-                          case CA_Sign_ltk
-                          by contradiction /* from formulas */
-                        next
-                          case TA_INIT_T
-                          by contradiction /* from formulas */
-                        next
-                          case c_cert
-                          solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.50 )
-                            case CA_Sign_ltk
-                            by contradiction /* from formulas */
-                          next
-                            case TA_INIT_T
-                            by contradiction /* from formulas */
-                          next
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.53 )
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.50 )
-                      qed
-                    qed
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~ltk ) @ #vk.47 )
-                    case Reveal_dh
-                    solve( !KU( ~skTe ) @ #vk.48 )
-                      case Reveal_session
-                      by contradiction /* cyclic */
-                    qed
-                  qed
-                qed
-              qed
-            qed
-          next
-            case c_sign
-            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), ~r2), 'g'^~skTe) ) @ #vk.4 )
-              case CA_FINISH_C
-              solve( !KU( cert('g'^~ltk, sign(<'g'^~ltk, z>, ca_sk), z) ) @ #vk.18 )
-                case CA_INIT_C
-                solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.49 )
-                  case TA_RESPONSE_T
-                  solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.47 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.51 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.51 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_cert
-                    solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.58 )
-                      case CA_Sign_ltk
-                      solve( !KU( ~ltk ) @ #vk.52 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.52 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.61 )
-                    qed
-                  qed
-                next
-                  case c_sign
-                  solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.46 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.49 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.49 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_cert
-                    solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.59 )
-                      case CA_Sign_ltk
-                      solve( !KU( ~ltk ) @ #vk.50 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.50 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.62 )
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_dh
-                solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.42 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.45 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.45 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.48 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.46 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.46 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.51 )
-                  qed
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<'g'^~ltk, z>, ca_sk) ) @ #vk.48 )
-                  case CA_INIT_C
-                  solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.52 )
-                    case TA_RESPONSE_T
-                    solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.48 )
-                      case CA_Sign_ltk
-                      solve( !KU( ~ltk ) @ #vk.52 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.52 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case c_cert
-                      solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.61 )
-                        case CA_Sign_ltk
-                        solve( !KU( ~ltk ) @ #vk.53 )
-                          case Reveal_ltk
-                          by contradiction /* from formulas */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.53 )
-                          case Reveal_ltk
-                          by contradiction /* from formulas */
-                        qed
-                      next
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.64 )
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.47 )
-                      case CA_Sign_ltk
-                      solve( !KU( ~ltk ) @ #vk.50 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.50 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case c_cert
-                      solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.62 )
-                        case CA_Sign_ltk
-                        solve( !KU( ~ltk ) @ #vk.51 )
-                          case Reveal_ltk
-                          by contradiction /* from formulas */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.51 )
-                          case Reveal_ltk
-                          by contradiction /* from formulas */
-                        qed
-                      next
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.65 )
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.43 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.46 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.46 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_cert
-                    solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.51 )
-                      case CA_Sign_ltk
-                      solve( !KU( ~ltk ) @ #vk.47 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.47 )
-                        case Reveal_ltk
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.54 )
-                    qed
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.51 )
-                qed
-              qed
-            next
-              case c_mac
-              solve( !KU( kdf_mac('g'^(~ltk*~skTe), ~r2) ) @ #vk.47 )
-                case c_kdf_mac
-                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.48 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.52 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case CA_INIT_T
-                  by contradiction /* cyclic */
-                next
-                  case CA_Sign_dh
-                  solve( !KU( ~skTe ) @ #vk.49 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.49 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.49 )
-                    case Reveal_dh
-                    solve( !KU( cert('g'^~ltk, sign(<'g'^~ltk, z>, ca_sk), z) ) @ #vk.23 )
-                      case CA_INIT_C
-                      solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.52 )
-                        case TA_RESPONSE_T
-                        solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.50 )
-                          case CA_Sign_ltk
-                          solve( !KU( ~ltk ) @ #vk.54 )
-                            case Reveal_ltk
-                            by contradiction /* from formulas */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.54 )
-                            case Reveal_ltk
-                            by contradiction /* from formulas */
-                          qed
-                        next
-                          case c_cert
-                          solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.61 )
-                            case CA_Sign_ltk
-                            solve( !KU( ~ltk ) @ #vk.55 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~ltk ) @ #vk.55 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.64 )
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.49 )
-                          case CA_Sign_ltk
-                          solve( !KU( ~ltk ) @ #vk.52 )
-                            case Reveal_ltk
-                            by contradiction /* from formulas */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.52 )
-                            case Reveal_ltk
-                            by contradiction /* from formulas */
-                          qed
-                        next
-                          case c_cert
-                          solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.62 )
-                            case CA_Sign_ltk
-                            solve( !KU( ~ltk ) @ #vk.53 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~ltk ) @ #vk.53 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.65 )
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.45 )
-                        case CA_Sign_ltk
-                        solve( !KU( ~ltk ) @ #vk.48 )
-                          case Reveal_ltk
-                          by contradiction /* from formulas */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.48 )
-                          case Reveal_ltk
-                          by contradiction /* from formulas */
-                        qed
-                      next
-                        case c_cert
-                        solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.51 )
-                          case CA_Sign_ltk
-                          solve( !KU( ~ltk ) @ #vk.49 )
-                            case Reveal_ltk
-                            by contradiction /* from formulas */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.49 )
-                            case Reveal_ltk
-                            by contradiction /* from formulas */
-                          qed
-                        next
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.54 )
-                        qed
-                      qed
-                    next
-                      case c_cert
-                      solve( !KU( sign(<'g'^~ltk, z>, ca_sk) ) @ #vk.51 )
-                        case CA_INIT_C
-                        solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.55 )
-                          case TA_RESPONSE_T
-                          solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.51 )
-                            case CA_Sign_ltk
-                            solve( !KU( ~ltk ) @ #vk.55 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~ltk ) @ #vk.55 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case c_cert
-                            solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.64 )
-                              case CA_Sign_ltk
-                              solve( !KU( ~ltk ) @ #vk.56 )
-                                case Reveal_ltk
-                                by contradiction /* from formulas */
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~ltk ) @ #vk.56 )
-                                case Reveal_ltk
-                                by contradiction /* from formulas */
-                              qed
-                            next
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.67 )
-                            qed
-                          qed
-                        next
-                          case c_sign
-                          solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.50 )
-                            case CA_Sign_ltk
-                            solve( !KU( ~ltk ) @ #vk.53 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~ltk ) @ #vk.53 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case c_cert
-                            solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.65 )
-                              case CA_Sign_ltk
-                              solve( !KU( ~ltk ) @ #vk.54 )
-                                case Reveal_ltk
-                                by contradiction /* from formulas */
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~ltk ) @ #vk.54 )
-                                case Reveal_ltk
-                                by contradiction /* from formulas */
-                              qed
-                            next
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.68 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.46 )
-                          case CA_Sign_ltk
-                          solve( !KU( ~ltk ) @ #vk.49 )
-                            case Reveal_ltk
-                            by contradiction /* from formulas */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.49 )
-                            case Reveal_ltk
-                            by contradiction /* from formulas */
-                          qed
-                        next
-                          case c_cert
-                          solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.54 )
-                            case CA_Sign_ltk
-                            solve( !KU( ~ltk ) @ #vk.50 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~ltk ) @ #vk.50 )
-                              case Reveal_ltk
-                              by contradiction /* from formulas */
-                            qed
-                          next
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.57 )
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.54 )
-                      qed
-                    qed
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~ltk ) @ #vk.51 )
-                    case Reveal_dh
-                    solve( !KU( ~skTe ) @ #vk.52 )
-                      case Reveal_session
-                      by contradiction /* cyclic */
-                    qed
-                  qed
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  next
-    case CA_FINISH_T
-    solve( CAInitT( <$T, iid>, ~skTe, id_c, certC ) ▶₁ #i )
-      case CA_INIT_T
-      solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.3 )
-        case CA_FINISH_C
-        solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe>, x) ) @ #vk.37 )
-          case TA_RESPONSE_T
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.17 )
-            case CA_INIT_C
-            by contradiction /* from formulas */
-          next
-            case CA_Sign_dh
-            by contradiction /* from formulas */
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.44 )
-              case CA_INIT_C
-              by contradiction /* from formulas */
-            next
-              case CA_Sign_dh
-              by contradiction /* from formulas */
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.47 )
-            qed
-          qed
-        next
-          case c_sign
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.17 )
-            case CA_INIT_C
-            by contradiction /* from formulas */
-          next
-            case CA_Sign_dh
-            by contradiction /* from formulas */
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.49 )
-              case CA_INIT_C
-              by contradiction /* from formulas */
-            next
-              case CA_Sign_dh
-              by contradiction /* from formulas */
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.52 )
-            qed
-          qed
-        qed
-      next
-        case c_mac
-        solve( !KU( cert(z.1, sign(<z.1, B>, ca_sk), B) ) @ #vk.16 )
-          case CA_INIT_C
-          solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.23 )
-            case c_kdf_mac
-            solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.26 )
-              case TA_RESPONSE_T
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.41 )
-                case CA_INIT_C
-                solve( !KU( ~skTe ) @ #vk.45 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.45 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.45 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.45 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.47 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.41 )
-                case CA_INIT_C
-                solve( !KU( ~skTe ) @ #vk.46 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.46 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.48 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            qed
-          qed
-        next
-          case CA_Sign_dh
-          solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.23 )
-            case c_kdf_mac
-            solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.25 )
-              case CA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.26 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( ~skTe ) @ #vk.26 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            next
-              case Generate_static_dh
-              solve( !KU( ~skTe ) @ #vk.26 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            next
-              case TA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.26 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            next
-              case c_exp
-              solve( !KU( ~ltk ) @ #vk.28 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            qed
-          qed
-        next
-          case CA_Sign_ltk
-          solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.23 )
-            case c_kdf_mac
-            solve( !KU( pk(~ltk)^~skTe ) @ #vk.25 )
-              case c_exp
-              solve( !KU( ~skTe ) @ #vk.27 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            qed
-          qed
-        next
-          case TA_INIT_T
-          solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.23 )
-            case c_kdf_mac
-            solve( !KU( pk(~ltk)^~skTe ) @ #vk.25 )
-              case c_exp
-              solve( !KU( ~skTe ) @ #vk.27 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            qed
-          qed
-        next
-          case c_cert
-          solve( !KU( sign(<z.1, B>, ca_sk) ) @ #vk.26 )
-            case CA_INIT_C
-            solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.24 )
-              case c_kdf_mac
-              solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.29 )
-                case TA_RESPONSE_T
-                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.44 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.48 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case CA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.48 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.48 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.48 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.44 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.49 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case CA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.49 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.49 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.49 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~ltk ) @ #vk.51 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_dh
-            solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.24 )
-              case c_kdf_mac
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.28 )
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.29 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case CA_Sign_dh
-                solve( !KU( ~skTe ) @ #vk.29 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.29 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.29 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.31 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_ltk
-            solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.24 )
-              case c_kdf_mac
-              solve( !KU( pk(~ltk)^~skTe ) @ #vk.28 )
-                case c_exp
-                solve( !KU( ~skTe ) @ #vk.29 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              qed
-            qed
-          next
-            case TA_INIT_T
-            solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.24 )
-              case c_kdf_mac
-              solve( !KU( pk(~ltk)^~skTe ) @ #vk.28 )
-                case c_exp
-                solve( !KU( ~skTe ) @ #vk.29 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              qed
-            qed
-          next
-            case c_sign
-            by solve( !KU( ca_sk ) @ #vk.29 )
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma session_uniqueness:
-  all-traces
-  "∀ A B k sid sid2 role #i #j.
-    ((Completed( k, sid, A, role, B ) @ #i) ∧
-     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
-    (#i = #j)"
-/*
-guarded formula characterizing all counter-examples:
-"∃ A B k sid sid2 role #i #j.
-  (Completed( k, sid, A, role, B ) @ #i) ∧
-  (Completed( k, sid2, A, role, B ) @ #j)
- ∧
-  ¬(#i = #j)"
-*/
-simplify
-solve( (#i < #j)  ∥ (#j < #i) )
-  case case_1
-  solve( Completed( k, sid, A, role, B ) @ #i )
-    case CA_FINISH_C
-    solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-      case CA_INIT_C
-      solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-        case Generate_static_dh
-        solve( !PkDH( $C, pkC ) ▶₃ #i )
-          case Generate_static_dh
-          solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>, sid2, $C, 'chip', B
-                 ) @ #j )
-            case CA_FINISH_C
-            solve( CAInitC( <$C, iid.1>, certT, pkTe.1, id_c.1, r1.1, ~r2 ) ▶₁ #j )
-              case CA_INIT_C
-              by contradiction /* cyclic */
-            qed
-          qed
-        qed
-      qed
-    qed
-  next
-    case CA_FINISH_T
-    solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #i )
-      case CA_INIT_T
-      solve( Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, sid2, $T, 'terminal',
-                        B
-             ) @ #j )
-        case CA_FINISH_T
-        solve( CAInitT( <$T, iid.1>, skTe.1, id_c.1, certC ) ▶₁ #j )
-          case CA_INIT_T
-          solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.4 )
-            case CA_FINISH_C
-            solve( splitEqs(1) )
-              case split_case_1
-              by contradiction /* cyclic */
-            next
-              case split_case_2
-              solve( !KU( sign(<~id_c.2, ~r1.2, 'g'^~skTe>, x) ) @ #vk.46 )
-                case TA_RESPONSE_T
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                  case CA_INIT_C
-                  solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.54 )
-                    case TA_RESPONSE_T
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.62 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.64 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.65 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.70 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.65 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.70 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.65 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.70 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.67 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.63 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.65 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.66 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.71 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.66 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.71 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.66 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.71 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.68 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.74 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                    case c_mac
-                    solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.52 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.54 )
-                        case CA_INIT_T
-                        by contradiction /* cyclic */
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.55 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~skC ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.63 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.53 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.57 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.65 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.67 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.72 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.72 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.68 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.72 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.70 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.71 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.75 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.66 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.68 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.69 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.71 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.72 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.74 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.76 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.55 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.57 )
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.58 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.61 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.63 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.65 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.56 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                  case CA_INIT_C
-                  solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.59 )
-                    case TA_RESPONSE_T
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.67 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.69 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.70 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.70 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.70 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.70 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.72 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.68 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.70 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.71 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.71 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.71 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.71 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.73 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.79 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                    case c_mac
-                    solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.57 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.59 )
-                        case CA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.60 )
-                          case Reveal_session
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.60 )
-                          case Reveal_session
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~skC ) @ #vk.62 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.68 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.58 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.62 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.70 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.72 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.73 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.73 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.75 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.76 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.78 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.80 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.71 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.73 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.74 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.74 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.76 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.77 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.79 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.81 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.60 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.62 )
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.63 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.63 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.65 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.66 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.70 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.61 )
-                  qed
-                qed
-              qed
-            qed
-          next
-            case c_mac
-            solve( !KU( cert(z.1, sign(<z.1, B>, ca_sk), B) ) @ #vk.21 )
-              case CA_INIT_C
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.35 )
-                    case TA_RESPONSE_T
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                      case CA_INIT_C
-                      solve( !KU( ~skTe ) @ #vk.54 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.54 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.37 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.54 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.54 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.37 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.56 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                      case CA_INIT_C
-                      solve( !KU( ~skTe ) @ #vk.55 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.55 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.35 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.61 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.55 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.55 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.35 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.61 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.57 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.34 )
-                    case CA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.35 )
-                      case Reveal_dh
-                      solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                               ) @ #vk.33 )
-                          case c_cert
-                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.41 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( ~skTe ) @ #vk.35 )
-                      case Reveal_session
-                      by contradiction /* cyclic */
-                    qed
-                  next
-                    case Generate_static_dh
-                    solve( !KU( ~skTe ) @ #vk.35 )
-                      case Reveal_session
-                      by contradiction /* cyclic */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.35 )
-                      case Reveal_dh
-                      solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                               ) @ #vk.33 )
-                          case c_cert
-                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.41 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_exp
-                    solve( !KU( ~ltk ) @ #vk.37 )
-                      case Reveal_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_ltk
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                    case c_mac
-                    solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                     sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                           ) @ #vk.30 )
-                      case c_cert
-                      solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.37 )
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.40 )
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case TA_INIT_T
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                    case c_mac
-                    solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                     sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                           ) @ #vk.30 )
-                      case c_cert
-                      solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                             ) @ #vk.37 )
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.40 )
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case c_cert
-              solve( !KU( sign(<z.1, B>, ca_sk) ) @ #vk.35 )
-                case CA_INIT_C
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.38 )
-                      case TA_RESPONSE_T
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.59 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.60 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.58 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.63 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.58 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.63 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.61 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_dh
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.37 )
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.38 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.43 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.38 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.43 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.40 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.41 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_ltk
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                             ) @ #vk.31 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.40 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.42 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case TA_INIT_T
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                             ) @ #vk.31 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                               ) @ #vk.40 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.42 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.38 )
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-next
-  case case_2
-  solve( Completed( k, sid, A, role, B ) @ #i )
-    case CA_FINISH_C
-    solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-      case CA_INIT_C
-      solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-        case Generate_static_dh
-        solve( !PkDH( $C, pkC ) ▶₃ #i )
-          case Generate_static_dh
-          solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>, sid2, $C, 'chip', B
-                 ) @ #j )
-            case CA_FINISH_C
-            solve( CAInitC( <$C, iid.1>, certT, pkTe.1, id_c.1, r1.1, ~r2 ) ▶₁ #j )
-              case CA_INIT_C
-              by contradiction /* cyclic */
-            qed
-          qed
-        qed
-      qed
-    qed
-  next
-    case CA_FINISH_T
-    solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #i )
-      case CA_INIT_T
-      solve( Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, sid2, $T, 'terminal',
-                        B
-             ) @ #j )
-        case CA_FINISH_T
-        solve( CAInitT( <$T, iid.1>, skTe.1, id_c.1, certC ) ▶₁ #j )
-          case CA_INIT_T
-          solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.4 )
-            case CA_FINISH_C
-            solve( splitEqs(1) )
-              case split_case_1
-              by contradiction /* cyclic */
-            next
-              case split_case_2
-              solve( !KU( sign(<~id_c.2, ~r1.2, 'g'^~skTe>, x) ) @ #vk.46 )
-                case TA_RESPONSE_T
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                  case CA_INIT_C
-                  solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.54 )
-                    case TA_RESPONSE_T
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.62 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.64 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.65 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.65 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.65 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.70 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.67 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.63 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.65 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.66 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.66 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.66 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.71 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.68 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                    case c_mac
-                    solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.52 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.54 )
-                        case CA_INIT_T
-                        by contradiction /* cyclic */
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.55 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~skC ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.53 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.57 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.65 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.67 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.68 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.72 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.70 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.71 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.66 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.68 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.69 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.71 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.72 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.55 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.57 )
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.58 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.61 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.56 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                  case CA_INIT_C
-                  solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.59 )
-                    case TA_RESPONSE_T
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.67 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.69 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.70 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.70 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.70 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.70 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.72 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.68 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.70 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.71 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.71 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.71 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.71 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.73 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                    case c_mac
-                    solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.57 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.59 )
-                        case CA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.60 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.60 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~skC ) @ #vk.62 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.58 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.62 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.70 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.72 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.73 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.73 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.75 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.76 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.71 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.73 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.74 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.74 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.76 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.77 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.60 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.62 )
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.63 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.63 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.65 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.66 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.61 )
-                  qed
-                qed
-              qed
-            qed
-          next
-            case c_mac
-            solve( !KU( cert(z.1, sign(<z.1, B>, ca_sk), B) ) @ #vk.21 )
-              case CA_INIT_C
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.35 )
-                    case TA_RESPONSE_T
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                      case CA_INIT_C
-                      solve( !KU( ~skTe ) @ #vk.54 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.54 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.37 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.54 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.54 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.37 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.56 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                      case CA_INIT_C
-                      solve( !KU( ~skTe ) @ #vk.55 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.55 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.35 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.61 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.55 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.55 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.35 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.61 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.57 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.34 )
-                    case CA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.35 )
-                      case Reveal_dh
-                      solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                               ) @ #vk.33 )
-                          case c_cert
-                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.41 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( ~skTe ) @ #vk.35 )
-                      case Reveal_session
-                      by contradiction /* cyclic */
-                    qed
-                  next
-                    case Generate_static_dh
-                    solve( !KU( ~skTe ) @ #vk.35 )
-                      case Reveal_session
-                      by contradiction /* cyclic */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.35 )
-                      case Reveal_dh
-                      solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                               ) @ #vk.33 )
-                          case c_cert
-                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.41 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_exp
-                    solve( !KU( ~ltk ) @ #vk.37 )
-                      case Reveal_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_ltk
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                    case c_mac
-                    solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                     sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                           ) @ #vk.30 )
-                      case c_cert
-                      solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.37 )
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.40 )
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case TA_INIT_T
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                    case c_mac
-                    solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                     sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                           ) @ #vk.30 )
-                      case c_cert
-                      solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                             ) @ #vk.37 )
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.40 )
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case c_cert
-              solve( !KU( sign(<z.1, B>, ca_sk) ) @ #vk.35 )
-                case CA_INIT_C
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.38 )
-                      case TA_RESPONSE_T
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.59 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.60 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.58 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.63 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.58 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.63 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.61 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_dh
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.37 )
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.38 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.43 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.38 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.43 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.40 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.41 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_ltk
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                             ) @ #vk.31 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.40 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.42 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case TA_INIT_T
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                             ) @ #vk.31 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                               ) @ #vk.40 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.42 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.38 )
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma consistency:
-  all-traces
-  "∀ C T k k2 sid #i #j.
-    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-       (Completed( k2, sid, T, 'terminal', C ) @ #j)) ∧
-      (¬(∃ #k.1. Corrupted( C ) @ #k.1))) ∧
-     (¬(∃ #k.1. Corrupted( T ) @ #k.1))) ⇒
-    (k = k2)"
-/*
-guarded formula characterizing all counter-examples:
-"∃ C T k k2 sid #i #j.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k2, sid, T, 'terminal', C ) @ #j)
- ∧
-  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥) ∧
-  (¬(k = k2))"
-*/
-simplify
-solve( Completed( k, sid, C, 'chip', T ) @ #i )
-  case CA_FINISH_C
-  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-    case CA_INIT_C
-    solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-      case Generate_static_dh
-      solve( !PkDH( $C, pkC ) ▶₃ #i )
-        case Generate_static_dh
-        solve( Completed( k2, <pkTe, 'g'^~ltk, ~id_c, ~r2>, T, 'terminal', $C
-               ) @ #j )
-          case CA_FINISH_T
-          solve( CAInitT( <$T, iid.1>, skTe, ~id_c, cert('g'^~ltk, x.1, $C)
-                 ) ▶₁ #j )
-            case CA_INIT_T
-            solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, x) ) @ #vk.14 )
-              case TA_RESPONSE_T
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T>, ca_sk), $T) ) @ #vk.17 )
-                case CA_Sign_ltk
-                solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), ~r2), 'g'^~skTe) ) @ #vk.23 )
-                  case CA_FINISH_C
-                  by contradiction /* from formulas */
-                next
-                  case c_mac
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), ~r2) ) @ #vk.43 )
-                    case c_kdf_mac
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.44 )
-                      case CA_INIT_C
-                      solve( !KU( ~skTe ) @ #vk.48 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case CA_INIT_T
-                      by contradiction /* cyclic */
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( ~skTe ) @ #vk.45 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.45 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.45 )
-                        case Reveal_dh
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.47 )
-                        case Reveal_dh
-                        by contradiction /* from formulas */
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), ~r2), 'g'^~skTe) ) @ #vk.23 )
-                  case CA_FINISH_C
-                  by contradiction /* from formulas */
-                next
-                  case c_mac
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), ~r2) ) @ #vk.43 )
-                    case c_kdf_mac
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.44 )
-                      case CA_INIT_C
-                      solve( !KU( ~skTe ) @ #vk.48 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case CA_INIT_T
-                      by contradiction /* cyclic */
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( ~skTe ) @ #vk.45 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.45 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.45 )
-                        case Reveal_dh
-                        by contradiction /* from formulas */
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.47 )
-                        case Reveal_dh
-                        by contradiction /* from formulas */
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), $T>, ca_sk) ) @ #vk.44 )
-                  case CA_Sign_ltk
-                  solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), ~r2), 'g'^~skTe) ) @ #vk.24 )
-                    case CA_FINISH_C
-                    by contradiction /* from formulas */
-                  next
-                    case c_mac
-                    solve( !KU( kdf_mac('g'^(~ltk*~skTe), ~r2) ) @ #vk.46 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.47 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.51 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        by contradiction /* cyclic */
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.48 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.48 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.48 )
-                          case Reveal_dh
-                          by contradiction /* from formulas */
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.50 )
-                          case Reveal_dh
-                          by contradiction /* from formulas */
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), ~r2), 'g'^~skTe) ) @ #vk.24 )
-                    case CA_FINISH_C
-                    by contradiction /* from formulas */
-                  next
-                    case c_mac
-                    solve( !KU( kdf_mac('g'^(~ltk*~skTe), ~r2) ) @ #vk.46 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.47 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.51 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        by contradiction /* cyclic */
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.48 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.48 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.48 )
-                          case Reveal_dh
-                          by contradiction /* from formulas */
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.50 )
-                          case Reveal_dh
-                          by contradiction /* from formulas */
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.47 )
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( cert(pk(x), sign(<pk(x), $T>, ca_sk), $T) ) @ #vk.18 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.45 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.45 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), $T>, ca_sk) ) @ #vk.48 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.46 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.46 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.51 )
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma key_secrecy [reuse]:
-  all-traces
-  "∀ C T role k sid #j.
-    (((((Completed( k, sid, C, role, T ) @ #j) ∧
-        (¬(∃ #m. Corrupted( T ) @ #m))) ∧
-       (¬(∃ #m. Corrupted( C ) @ #m))) ∧
-      (¬(∃ iid #m. Revealed( <T, iid> ) @ #m))) ∧
-     (¬(∃ iid #m. Revealed( <C, iid> ) @ #m))) ⇒
-    (¬(∃ #m. K( k ) @ #m))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ C T role k sid #j.
-  (Completed( k, sid, C, role, T ) @ #j)
- ∧
-  (∀ #m. (Corrupted( T ) @ #m) ⇒ ⊥) ∧
-  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥) ∧
-  (∀ iid #m. (Revealed( <T, iid> ) @ #m) ⇒ ⊥) ∧
-  (∀ iid #m. (Revealed( <C, iid> ) @ #m) ⇒ ⊥) ∧
-  (∃ #m. (K( k ) @ #m))"
-*/
-simplify
-solve( Completed( k, sid, C, role, T ) @ #j )
-  case CA_FINISH_C
-  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #j )
-    case CA_INIT_C
-    solve( !LtkDH( $C, ~skC ) ▶₂ #j )
-      case Generate_static_dh
-      solve( !PkDH( $C, pkC ) ▶₃ #j )
-        case Generate_static_dh
-        solve( !KU( kdf_enc(z, ~r2) ) @ #vk.15 )
-          case c_kdf_enc
-          solve( !KU( kdf_mac(z, ~r2) ) @ #vk.16 )
-            case c_kdf_mac
-            solve( !KU( sign(<~id_c, ~r1, pkTe>, x) ) @ #vk.17 )
-              case TA_RESPONSE_T
-              solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.23 )
-                case CA_INIT_C
-                solve( !KU( ~skTe ) @ #vk.37 )
-                  case Reveal_session
-                  solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.40 )
-                    case TA_RESPONSE_T
-                    solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.26 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_cert
-                      solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.60 )
-                        case CA_Sign_ltk
-                        by contradiction /* from formulas */
-                      next
-                        case TA_INIT_T
-                        by contradiction /* from formulas */
-                      next
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.63 )
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.26 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_cert
-                      solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.61 )
-                        case CA_Sign_ltk
-                        by contradiction /* from formulas */
-                      next
-                        case TA_INIT_T
-                        by contradiction /* from formulas */
-                      next
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.64 )
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_INIT_T
-                by contradiction /* cyclic */
-              next
-                case CA_Sign_dh
-                solve( !KU( ~skTe ) @ #vk.34 )
-                  case Reveal_session
-                  solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.22 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_cert
-                    solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.50 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.53 )
-                    qed
-                  qed
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.34 )
-                  case Reveal_session
-                  solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.22 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_cert
-                    solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.50 )
-                      case CA_Sign_ltk
-                      by contradiction /* from formulas */
-                    next
-                      case TA_INIT_T
-                      by contradiction /* from formulas */
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.53 )
-                    qed
-                  qed
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~skC ) @ #vk.34 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~skC ) @ #vk.36 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.21 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.27 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.27 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.31 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.28 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.28 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.34 )
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-next
-  case CA_FINISH_T
-  solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #j )
-    case CA_INIT_T
-    solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.4 )
-      case CA_FINISH_C
-      solve( !KU( kdf_enc('g'^(~skC*~skTe), ~r2) ) @ #vk.14 )
-        case c_kdf_enc
-        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.17 )
-          case c_kdf_mac
-          solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe>, x) ) @ #vk.40 )
-            case TA_RESPONSE_T
-            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.46 )
-              case CA_INIT_C
-              solve( !KU( ~skTe ) @ #vk.50 )
-                case Reveal_session
-                by contradiction /* from formulas */
-              qed
-            next
-              case CA_INIT_T
-              by contradiction /* cyclic */
-            next
-              case CA_Sign_dh
-              solve( !KU( ~skTe ) @ #vk.47 )
-                case Reveal_session
-                by contradiction /* from formulas */
-              qed
-            next
-              case Generate_static_dh
-              solve( !KU( ~skTe ) @ #vk.47 )
-                case Reveal_session
-                by contradiction /* from formulas */
-              qed
-            next
-              case TA_INIT_T
-              solve( !KU( ~skC ) @ #vk.47 )
-                case Reveal_dh
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, T.1>, ca_sk), T.1)
-                       ) @ #vk.25 )
-                  case CA_INIT_C
-                  by contradiction /* from formulas */
-                next
-                  case CA_Sign_dh
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, T.1>, ca_sk) ) @ #vk.49 )
-                    case CA_INIT_C
-                    by contradiction /* from formulas */
-                  next
-                    case CA_Sign_dh
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.52 )
-                  qed
-                qed
-              qed
-            next
-              case c_exp
-              solve( !KU( ~skC ) @ #vk.49 )
-                case Reveal_dh
-                solve( !KU( ~skTe ) @ #vk.50 )
-                  case Reveal_session
-                  by contradiction /* from formulas */
-                qed
-              qed
-            qed
-          next
-            case c_sign
-            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.47 )
-              case CA_INIT_C
-              solve( !KU( ~skTe ) @ #vk.55 )
-                case Reveal_session
-                by contradiction /* from formulas */
-              qed
-            next
-              case CA_INIT_T
-              solve( !KU( ~skC ) @ #vk.52 )
-                case Reveal_dh
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, T.1>, ca_sk), T.1)
-                       ) @ #vk.25 )
-                  case CA_INIT_C
-                  by contradiction /* from formulas */
-                next
-                  case CA_Sign_dh
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, T.1>, ca_sk) ) @ #vk.54 )
-                    case CA_INIT_C
-                    by contradiction /* from formulas */
-                  next
-                    case CA_Sign_dh
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.57 )
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( ~skTe ) @ #vk.52 )
-                case Reveal_session
-                by contradiction /* from formulas */
-              qed
-            next
-              case Generate_static_dh
-              solve( !KU( ~skTe ) @ #vk.52 )
-                case Reveal_session
-                by contradiction /* from formulas */
-              qed
-            next
-              case TA_INIT_T
-              solve( !KU( ~skC ) @ #vk.52 )
-                case Reveal_dh
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, T.1>, ca_sk), T.1)
-                       ) @ #vk.25 )
-                  case CA_INIT_C
-                  by contradiction /* from formulas */
-                next
-                  case CA_Sign_dh
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, T.1>, ca_sk) ) @ #vk.54 )
-                    case CA_INIT_C
-                    by contradiction /* from formulas */
-                  next
-                    case CA_Sign_dh
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.57 )
-                  qed
-                qed
-              qed
-            next
-              case c_exp
-              solve( !KU( ~skC ) @ #vk.54 )
-                case Reveal_dh
-                solve( !KU( ~skTe ) @ #vk.55 )
-                  case Reveal_session
-                  by contradiction /* from formulas */
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    next
-      case c_mac
-      solve( !KU( cert(z.1, sign(<z.1, T.1>, ca_sk), T.1) ) @ #vk.17 )
-        case CA_INIT_C
-        solve( !KU( kdf_enc('g'^(~ltk*~skTe), r2) ) @ #vk.17 )
-          case c_kdf_enc
-          solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.19 )
-            case c_kdf_mac
-            solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.28 )
-              case TA_RESPONSE_T
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.43 )
-                case CA_INIT_C
-                solve( !KU( ~skTe ) @ #vk.47 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.47 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.47 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.47 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.49 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.43 )
-                case CA_INIT_C
-                solve( !KU( ~skTe ) @ #vk.48 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.48 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.48 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.48 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.50 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            qed
-          qed
-        qed
-      next
-        case CA_Sign_dh
-        solve( !KU( kdf_enc('g'^(~ltk*~skTe), r2) ) @ #vk.17 )
-          case c_kdf_enc
-          solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.19 )
-            case c_kdf_mac
-            solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.27 )
-              case CA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.28 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( ~skTe ) @ #vk.28 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            next
-              case Generate_static_dh
-              solve( !KU( ~skTe ) @ #vk.28 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            next
-              case TA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.28 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            next
-              case c_exp
-              solve( !KU( ~ltk ) @ #vk.30 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            qed
-          qed
-        qed
-      next
-        case CA_Sign_ltk
-        solve( !KU( kdf_enc(pk(~ltk)^~skTe, r2) ) @ #vk.17 )
-          case c_kdf_enc
-          solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.19 )
-            case c_kdf_mac
-            solve( !KU( pk(~ltk)^~skTe ) @ #vk.27 )
-              case c_exp
-              solve( !KU( ~skTe ) @ #vk.29 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            qed
-          qed
-        qed
-      next
-        case TA_INIT_T
-        solve( !KU( kdf_enc(pk(~ltk)^~skTe, r2) ) @ #vk.17 )
-          case c_kdf_enc
-          solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.19 )
-            case c_kdf_mac
-            solve( !KU( pk(~ltk)^~skTe ) @ #vk.27 )
-              case c_exp
-              solve( !KU( ~skTe ) @ #vk.29 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            qed
-          qed
-        qed
-      next
-        case c_cert
-        solve( !KU( sign(<z.1, T.1>, ca_sk) ) @ #vk.28 )
-          case CA_INIT_C
-          solve( !KU( kdf_enc('g'^(~ltk*~skTe), r2) ) @ #vk.19 )
-            case c_kdf_enc
-            solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.20 )
-              case c_kdf_mac
-              solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.31 )
-                case TA_RESPONSE_T
-                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.46 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.50 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case CA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.50 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.46 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.51 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case CA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.51 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.51 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.51 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~ltk ) @ #vk.53 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                qed
-              qed
-            qed
-          qed
-        next
-          case CA_Sign_dh
-          solve( !KU( kdf_enc('g'^(~ltk*~skTe), r2) ) @ #vk.19 )
-            case c_kdf_enc
-            solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.20 )
-              case c_kdf_mac
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.30 )
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.31 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case CA_Sign_dh
-                solve( !KU( ~skTe ) @ #vk.31 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.31 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.31 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.33 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            qed
-          qed
-        next
-          case CA_Sign_ltk
-          solve( !KU( kdf_enc(pk(~ltk)^~skTe, r2) ) @ #vk.19 )
-            case c_kdf_enc
-            solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.20 )
-              case c_kdf_mac
-              solve( !KU( pk(~ltk)^~skTe ) @ #vk.30 )
-                case c_exp
-                solve( !KU( ~skTe ) @ #vk.31 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              qed
-            qed
-          qed
-        next
-          case TA_INIT_T
-          solve( !KU( kdf_enc(pk(~ltk)^~skTe, r2) ) @ #vk.19 )
-            case c_kdf_enc
-            solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.20 )
-              case c_kdf_mac
-              solve( !KU( pk(~ltk)^~skTe ) @ #vk.30 )
-                case c_exp
-                solve( !KU( ~skTe ) @ #vk.31 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              qed
-            qed
-          qed
-        next
-          case c_sign
-          by solve( !KU( ca_sk ) @ #vk.31 )
-        qed
-      qed
-    qed
-  qed
-qed
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* All wellformedness checks were successful. */
-
-/*
-Generated from:
-Tamarin version 1.8.0
-Maude version 3.3.1
-Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
-Compiled at: 2024-01-16 15:38:46.116852601 UTC
-*/
-
-end
-
-==============================================================================
-summary of summaries:
-
-analyzed: BasicEAC.spthy
-
-  processing time: 64.87s
-  
-  aliveness (all-traces): verified (379 steps)
-  session_uniqueness (all-traces): verified (824 steps)
-  consistency (all-traces): verified (82 steps)
-  key_secrecy (all-traces): verified (206 steps)
-
-==============================================================================
diff --git a/results/Basic/session_exist.out.45215033 b/results/Basic/session_exist.out.45215033
deleted file mode 100644
index 1f46cf1cc4c50d37a2f21d1484447bba1c8b129d..0000000000000000000000000000000000000000
--- a/results/Basic/session_exist.out.45215033
+++ /dev/null
@@ -1,963 +0,0 @@
-Execute session_exist
-maude tool: 'maude'
- checking version: 3.3.1. OK.
- checking installation: OK.
-theory BasicEAC begin
-
-// Function signature and definition of the equational theory E
-
-builtins: diffie-hellman
-functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
-           cert_sig/1, fst/1, kdf_enc/2, kdf_mac/2, mac/2, pair/2, pk/1, sign/2,
-           snd/1, true/0, verify/3
-equations:
-    cert_id(cert(pk, s, id)) = id,
-    cert_pk(cert(pk, s, id)) = pk,
-    cert_sig(cert(pk, s, id)) = s,
-    fst(<x.1, x.2>) = x.1,
-    snd(<x.1, x.2>) = x.2,
-    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
-
-
-
-
-
-
-
-
-
-macros:
-    verify_cert( cert ) = verify(cert_sig(cert),pair(cert_pk(cert),cert_id(cert)),pk(ca_sk))
-
-rule (modulo E) Generate_static_ltk:
-   [ Fr( ~ltk ) ]
-  -->
-   [ !Pk( $A, pk(~ltk) ), !Ltk( $A, ~ltk ), Out( pk(~ltk) ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Generate_static_dh:
-   [ Fr( ~ltk ) ]
-  -->
-   [ !PkDH( $A, 'g'^~ltk ), !LtkDH( $A, ~ltk ), Out( 'g'^~ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_Sign_ltk:
-   [ !Pk( A, pk ) ]
-  --[ Certified( A ) ]->
-   [
-   !Cert( A, cert(pk, sign(<pk, A>, ca_sk), A) ),
-   Out( cert(pk, sign(<pk, A>, ca_sk), A) )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_Sign_dh:
-   [ !PkDH( A, pk ) ]
-  --[ Certified( A ) ]->
-   [
-   !CertDH( A, cert(pk, sign(<pk, A>, ca_sk), A) ),
-   Out( cert(pk, sign(<pk, A>, ca_sk), A) )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_ltk:
-   [ !Ltk( $A, ltk ) ] --[ Corrupted( $A ) ]-> [ Out( ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_ltk2:
-   [ !LtkDH( $A, ltk ) ] --[ Corrupted( $A ) ]-> [ Out( ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_session:
-   [ !SessionReveal( uid, k ) ] --[ Revealed( uid ) ]-> [ Out( k ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) TA_INIT_T:
-   [ !Cert( $T, certT ), Fr( ~skTe ), Fr( ~iid ) ]
-  -->
-   [
-   Out( <certT, 'g'^~skTe, 'TA_INIT', '1', 't'> ),
-   TAInitT( <$T, ~iid>, ~skTe )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) TA_CHALLENGE_C:
-   [
-   In( <certT, pkTe, 'TA_INIT', '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ),
-   Fr( ~iid )
-   ]
-  --[ Eq( verify_cert(certT), true ) ]->
-   [
-   Out( <~id_c, ~r1, 'TA_CHALLENGE', '2', 'c'> ),
-   TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
-   ]
-
-  /*
-  rule (modulo AC) TA_CHALLENGE_C:
-     [
-     In( <certT, pkTe, 'TA_INIT', '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ),
-     Fr( ~iid )
-     ]
-    --[ Eq( z, true ) ]->
-     [
-     Out( <~id_c, ~r1, 'TA_CHALLENGE', '2', 'c'> ),
-     TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
-     ]
-    variants (modulo AC)
-    1. certT = certT.15
-       z     = verify(cert_sig(certT.15),
-                      <cert_pk(certT.15), cert_id(certT.15)>, pk(ca_sk))
-    
-    2. certT = cert(x.16, sign(<x.16, x.17>, ca_sk), x.17)
-       z     = true
-    
-    3. certT = cert(x.17, x.18, x.19)
-       z     = verify(x.18, <x.17, x.19>, pk(ca_sk))
-  */
-
-rule (modulo E) TA_RESPONSE_T:
-   [
-   In( <id_c, r1, 'TA_CHALLENGE', '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
-   !Ltk( $T, ~skT )
-   ]
-  -->
-   [
-   Out( <sign(<id_c, r1, 'g'^skTe>, ~skT), 'TA_RESPONSE', '3', 't'> ),
-   TAResponseT( <$T, iid>, skTe, id_c )
-   ]
-
-  /*
-  rule (modulo AC) TA_RESPONSE_T:
-     [
-     In( <id_c, r1, 'TA_CHALLENGE', '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
-     !Ltk( $T, ~skT )
-     ]
-    -->
-     [
-     Out( <sign(<id_c, r1, z>, ~skT), 'TA_RESPONSE', '3', 't'> ),
-     TAResponseT( <$T, iid>, skTe, id_c )
-     ]
-    variants (modulo AC)
-    1. skTe  = skTe.12
-       z     = 'g'^skTe.12
-    
-    2. skTe  = one
-       z     = 'g'
-  */
-
-rule (modulo E) TA_COMPLETE_C:
-   [
-   In( <s, 'TA_RESPONSE', '3', 't'> ),
-   TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 )
-   ]
-  --[ Eq( verify(s, <id_c, r1, pkTe>, cert_pk(certT)), true ) ]->
-   [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
-
-  /*
-  rule (modulo AC) TA_COMPLETE_C:
-     [
-     In( <s, 'TA_RESPONSE', '3', 't'> ),
-     TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 )
-     ]
-    --[ Eq( z, true ) ]->
-     [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
-    variants (modulo AC)
-    1. certT = certT.18
-       id_c  = id_c.19
-       pkTe  = pkTe.21
-       r1    = r1.22
-       s     = s.23
-       z     = verify(s.23, <id_c.19, r1.22, pkTe.21>, cert_pk(certT.18))
-    
-    2. certT = cert(x.60, x.61, x.62)
-       id_c  = id_c.33
-       pkTe  = pkTe.35
-       r1    = r1.36
-       s     = s.37
-       z     = verify(s.37, <id_c.33, r1.36, pkTe.35>, x.60)
-    
-    3. certT = cert(pk(x.60), x.61, x.62)
-       id_c  = id_c.33
-       pkTe  = pkTe.35
-       r1    = r1.36
-       s     = sign(<id_c.33, r1.36, pkTe.35>, x.60)
-       z     = true
-  */
-
-rule (modulo E) CA_INIT_C:
-   [
-   !CertDH( $C, certC ), Fr( ~r2 ),
-   TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 )
-   ]
-  -->
-   [
-   Out( <certC, 'CA_INIT', '4', 'c'> ),
-   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, ~r2 )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_INIT_T:
-   [
-   In( <certC, 'CA_INIT', '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c )
-   ]
-  --[ Eq( verify_cert(certC), true ) ]->
-   [
-   Out( <'g'^skTe, 'CA_COMMIT', '5', 't'> ),
-   CAInitT( <$T, iid>, skTe, id_c, certC )
-   ]
-
-  /*
-  rule (modulo AC) CA_INIT_T:
-     [
-     In( <certC, 'CA_INIT', '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c )
-     ]
-    --[ Eq( z.1, true ) ]->
-     [
-     Out( <z, 'CA_COMMIT', '5', 't'> ),
-     CAInitT( <$T, iid>, skTe, id_c, certC )
-     ]
-    variants (modulo AC)
-    1. certC = certC.15
-       skTe  = one
-       z     = 'g'
-       z.1   = verify(cert_sig(certC.15),
-                      <cert_pk(certC.15), cert_id(certC.15)>, pk(ca_sk))
-    
-    2. certC = certC.18
-       skTe  = skTe.21
-       z     = 'g'^skTe.21
-       z.1   = verify(cert_sig(certC.18),
-                      <cert_pk(certC.18), cert_id(certC.18)>, pk(ca_sk))
-    
-    3. certC = cert(x.16, sign(<x.16, x.17>, ca_sk), x.17)
-       skTe  = one
-       z     = 'g'
-       z.1   = true
-    
-    4. certC = cert(x.17, x.18, x.19)
-       skTe  = one
-       z     = 'g'
-       z.1   = verify(x.18, <x.17, x.19>, pk(ca_sk))
-    
-    5. certC = cert(x.115, sign(<x.115, x.116>, ca_sk), x.116)
-       skTe  = skTe.61
-       z     = 'g'^skTe.61
-       z.1   = true
-    
-    6. certC = cert(x.116, x.117, x.118)
-       skTe  = skTe.62
-       z     = 'g'^skTe.62
-       z.1   = verify(x.117, <x.116, x.118>, pk(ca_sk))
-  */
-
-rule (modulo E) CA_FINISH_C:
-   [
-   In( <pkTe_t, 'CA_COMMIT', '5', 't'> ),
-   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ), !LtkDH( $C, ~skC ),
-   !PkDH( $C, pkC )
-   ]
-  --[
-  Eq( pkTe_t, pkTe ),
-  Completed( <kdf_enc(pkTe^~skC, r2), kdf_mac(pkTe^~skC, r2)>,
-             <pkTe, pkC, id_c, r2>, $C, 'chip', cert_id(certT)
-  )
-  ]->
-   [
-   Out( <r2, mac(kdf_mac(pkTe^~skC, r2), pkTe), 'CA_RESPONSE', '6', 'c'> ),
-   CAFinishC( $C, cert_id(certT), kdf_enc(pkTe^~skC, r2) ), Out( iid )
-   ]
-
-  /*
-  rule (modulo AC) CA_FINISH_C:
-     [
-     In( <pkTe_t, 'CA_COMMIT', '5', 't'> ),
-     CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ), !LtkDH( $C, ~skC ),
-     !PkDH( $C, pkC )
-     ]
-    --[
-    Eq( pkTe_t, pkTe ),
-    Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, <pkTe, pkC, id_c, r2>, $C,
-               'chip', z.1
-    )
-    ]->
-     [
-     Out( <r2, mac(kdf_mac(z, r2), pkTe), 'CA_RESPONSE', '6', 'c'> ),
-     CAFinishC( $C, z.1, kdf_enc(z, r2) ), Out( iid )
-     ]
-    variants (modulo AC)
-     1. ~skC  = ~skC.25
-        certT = certT.26
-        pkTe  = pkTe.30
-        z     = pkTe.30^~skC.25
-        z.1   = cert_id(certT.26)
-    
-     2. ~skC  = ~skC.32
-        certT = certT.33
-        pkTe  = z.44^inv(~skC.32)
-        z     = z.44
-        z.1   = cert_id(certT.33)
-    
-     3. ~skC  = ~skC.129
-        certT = certT.130
-        pkTe  = x.254^x.255
-        z     = x.254^(~skC.129*x.255)
-        z.1   = cert_id(certT.130)
-    
-     4. ~skC  = ~skC.129
-        certT = cert(x.254, x.255, z.145)
-        pkTe  = pkTe.134
-        z     = pkTe.134^~skC.129
-        z.1   = z.145
-    
-     5. ~skC  = ~skC.130
-        certT = cert(x.256, x.257, z.146)
-        pkTe  = z.142^inv(~skC.130)
-        z     = z.142
-        z.1   = z.146
-    
-     6. ~skC  = ~skC.134
-        certT = certT.135
-        pkTe  = x.264^inv((~skC.134*x.265))
-        z     = x.264^inv(x.265)
-        z.1   = cert_id(certT.135)
-    
-     7. ~skC  = ~skC.134
-        certT = certT.135
-        pkTe  = x.264^(x.265*inv(~skC.134))
-        z     = x.264^x.265
-        z.1   = cert_id(certT.135)
-    
-     8. ~skC  = ~skC.135
-        certT = certT.136
-        pkTe  = x.265^(x.266*inv((~skC.135*x.267)))
-        z     = x.265^(x.266*inv(x.267))
-        z.1   = cert_id(certT.136)
-    
-     9. ~skC  = ~skC.135
-        certT = cert(x.260, x.261, z.151)
-        pkTe  = x.266^x.267
-        z     = x.266^(~skC.135*x.267)
-        z.1   = z.151
-    
-    10. ~skC  = ~skC.136
-        certT = cert(x.262, x.263, z.152)
-        pkTe  = x.268^inv((~skC.136*x.269))
-        z     = x.268^inv(x.269)
-        z.1   = z.152
-    
-    11. ~skC  = ~skC.136
-        certT = cert(x.262, x.263, z.152)
-        pkTe  = x.268^(x.269*inv(~skC.136))
-        z     = x.268^x.269
-        z.1   = z.152
-    
-    12. ~skC  = ~skC.137
-        certT = cert(x.263, x.264, z.153)
-        pkTe  = x.269^(x.270*inv((~skC.137*x.271)))
-        z     = x.269^(x.270*inv(x.271))
-        z.1   = z.153
-    
-    13. certT = certT.20
-        pkTe  = DH_neutral
-        z     = DH_neutral
-        z.1   = cert_id(certT.20)
-    
-    14. certT = cert(x.46, x.47, z.33)
-        pkTe  = DH_neutral
-        z     = DH_neutral
-        z.1   = z.33
-  */
-
-rule (modulo E) CA_FINISH_T:
-   [
-   In( <r2, tag, 'CA_RESPONSE', '6', 'c'> ),
-   CAInitT( <$T, iid>, skTe, id_c, certC )
-   ]
-  --[
-  Eq( mac(kdf_mac(cert_pk(certC)^skTe, r2), 'g'^skTe), tag ),
-  Completed( <kdf_enc(cert_pk(certC)^skTe, r2), 
-              kdf_mac(cert_pk(certC)^skTe, r2)>,
-             <'g'^skTe, cert_pk(certC), id_c, r2>, $T, 'terminal', cert_id(certC)
-  )
-  ]->
-   [
-   CAFinishT( cert_id(certC), $T, kdf_enc(cert_pk(certC)^skTe, r2) ),
-   !SessionReveal( <$T, iid>, skTe ), Out( iid )
-   ]
-
-  /*
-  rule (modulo AC) CA_FINISH_T:
-     [
-     In( <r2, tag, 'CA_RESPONSE', '6', 'c'> ),
-     CAInitT( <$T, iid>, skTe, id_c, certC )
-     ]
-    --[
-    Eq( mac(kdf_mac(z.1, r2), z.2), tag ),
-    Completed( <kdf_enc(z.1, r2), kdf_mac(z.1, r2)>, <z.2, z.3, id_c, r2>,
-               $T, 'terminal', z
-    )
-    ]->
-     [
-     CAFinishT( z, $T, kdf_enc(z.1, r2) ), !SessionReveal( <$T, iid>, skTe ),
-     Out( iid )
-     ]
-    variants (modulo AC)
-     1. certC = certC.16
-        skTe  = one
-        z     = cert_id(certC.16)
-        z.1   = cert_pk(certC.16)
-        z.2   = 'g'
-        z.3   = cert_pk(certC.16)
-    
-     2. certC = certC.20
-        skTe  = skTe.24
-        z     = cert_id(certC.20)
-        z.1   = cert_pk(certC.20)^skTe.24
-        z.2   = 'g'^skTe.24
-        z.3   = cert_pk(certC.20)
-    
-     3. certC = cert(z.33, x.52, z.32)
-        skTe  = one
-        z     = z.32
-        z.1   = z.33
-        z.2   = 'g'
-        z.3   = z.33
-    
-     4. certC = cert(z.55, x.87, z.52)
-        skTe  = skTe.47
-        z     = z.52
-        z.1   = z.55^skTe.47
-        z.2   = 'g'^skTe.47
-        z.3   = z.55
-    
-     5. certC = cert(DH_neutral, x.85, z.51)
-        skTe  = skTe.46
-        z     = z.51
-        z.1   = DH_neutral
-        z.2   = 'g'^skTe.46
-        z.3   = DH_neutral
-    
-     6. certC = cert(z.34^x.53, x.54, z.33)
-        skTe  = inv(x.53)
-        z     = z.33
-        z.1   = z.34
-        z.2   = 'g'^inv(x.53)
-        z.3   = z.34^x.53
-    
-     7. certC = cert(z.35^(x.54*inv(x.55)), x.56, z.34)
-        skTe  = (x.55*inv(x.54))
-        z     = z.34
-        z.1   = z.35
-        z.2   = 'g'^(x.55*inv(x.54))
-        z.3   = z.35^(x.54*inv(x.55))
-    
-     8. certC = cert(x.53^(x.54*x.55), x.56, z.34)
-        skTe  = inv(x.54)
-        z     = z.34
-        z.1   = x.53^x.55
-        z.2   = 'g'^inv(x.54)
-        z.3   = x.53^(x.54*x.55)
-    
-     9. certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.35)
-        skTe  = (x.57*inv(x.56))
-        z     = z.35
-        z.1   = x.54^x.55
-        z.2   = 'g'^(x.57*inv(x.56))
-        z.3   = x.54^(x.55*x.56*inv(x.57))
-    
-    10. certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.35)
-        skTe  = (x.57*inv(x.55))
-        z     = z.35
-        z.1   = x.54^inv(x.56)
-        z.2   = 'g'^(x.57*inv(x.55))
-        z.3   = x.54^(x.55*inv((x.56*x.57)))
-    
-    11. certC = cert(z.54^inv(skTe.48), x.89, z.53)
-        skTe  = skTe.48
-        z     = z.53
-        z.1   = z.54
-        z.2   = 'g'^skTe.48
-        z.3   = z.54^inv(skTe.48)
-    
-    12. certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))), x.60, z.36)
-        skTe  = (x.59*inv(x.57))
-        z     = z.36
-        z.1   = x.55^(x.56*inv(x.58))
-        z.2   = 'g'^(x.59*inv(x.57))
-        z.3   = x.55^(x.56*x.57*inv((x.58*x.59)))
-    
-    13. certC = cert(x.57^x.58, x.59, z.38)
-        skTe  = inv((x.58*x.64))
-        z     = z.38
-        z.1   = x.57^inv(x.64)
-        z.2   = 'g'^inv((x.58*x.64))
-        z.3   = x.57^x.58
-    
-    14. certC = cert(x.57^x.58, x.59, z.38)
-        skTe  = (x.64*inv(x.58))
-        z     = z.38
-        z.1   = x.57^x.64
-        z.2   = 'g'^(x.64*inv(x.58))
-        z.3   = x.57^x.58
-    
-    15. certC = cert(x.57^inv(x.58), x.59, z.38)
-        skTe  = inv(x.64)
-        z     = z.38
-        z.1   = x.57^inv((x.58*x.64))
-        z.2   = 'g'^inv(x.64)
-        z.3   = x.57^inv(x.58)
-    
-    16. certC = cert(x.57^inv(x.58), x.59, z.38)
-        skTe  = (x.58*x.64)
-        z     = z.38
-        z.1   = x.57^x.64
-        z.2   = 'g'^(x.58*x.64)
-        z.3   = x.57^inv(x.58)
-    
-    17. certC = cert(x.58^x.59, x.60, z.39)
-        skTe  = (x.65*inv((x.59*x.66)))
-        z     = z.39
-        z.1   = x.58^(x.65*inv(x.66))
-        z.2   = 'g'^(x.65*inv((x.59*x.66)))
-        z.3   = x.58^x.59
-    
-    18. certC = cert(x.58^inv(x.59), x.60, z.39)
-        skTe  = (x.65*inv(x.66))
-        z     = z.39
-        z.1   = x.58^(x.65*inv((x.59*x.66)))
-        z.2   = 'g'^(x.65*inv(x.66))
-        z.3   = x.58^inv(x.59)
-    
-    19. certC = cert(x.58^inv((x.59*x.60)), x.61, z.39)
-        skTe  = (x.59*x.66)
-        z     = z.39
-        z.1   = x.58^(x.66*inv(x.60))
-        z.2   = 'g'^(x.59*x.66)
-        z.3   = x.58^inv((x.59*x.60))
-    
-    20. certC = cert(x.58^inv((x.59*x.60)), x.61, z.39)
-        skTe  = (x.59*inv(x.66))
-        z     = z.39
-        z.1   = x.58^inv((x.60*x.66))
-        z.2   = 'g'^(x.59*inv(x.66))
-        z.3   = x.58^inv((x.59*x.60))
-    
-    21. certC = cert(x.58^(x.59*x.60), x.61, z.39)
-        skTe  = inv((x.59*x.66))
-        z     = z.39
-        z.1   = x.58^(x.60*inv(x.66))
-        z.2   = 'g'^inv((x.59*x.66))
-        z.3   = x.58^(x.59*x.60)
-    
-    22. certC = cert(x.58^(x.59*x.60), x.61, z.39)
-        skTe  = (x.66*inv(x.59))
-        z     = z.39
-        z.1   = x.58^(x.60*x.66)
-        z.2   = 'g'^(x.66*inv(x.59))
-        z.3   = x.58^(x.59*x.60)
-    
-    23. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = inv(x.66)
-        z     = z.39
-        z.1   = x.58^(x.59*inv((x.60*x.66)))
-        z.2   = 'g'^inv(x.66)
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    24. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = inv((x.59*x.66))
-        z     = z.39
-        z.1   = x.58^inv((x.60*x.66))
-        z.2   = 'g'^inv((x.59*x.66))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    25. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*x.66)
-        z     = z.39
-        z.1   = x.58^(x.59*x.66)
-        z.2   = 'g'^(x.60*x.66)
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    26. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*x.66*inv(x.59))
-        z     = z.39
-        z.1   = x.58^x.66
-        z.2   = 'g'^(x.60*x.66*inv(x.59))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    27. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*inv((x.59*x.66)))
-        z     = z.39
-        z.1   = x.58^inv(x.66)
-        z.2   = 'g'^(x.60*inv((x.59*x.66)))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    28. certC = cert(x.59^inv((x.60*x.61)), x.62, z.40)
-        skTe  = (x.60*x.67*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.60*x.67*inv(x.68))
-        z.3   = x.59^inv((x.60*x.61))
-    
-    29. certC = cert(x.59^(x.60*x.61), x.62, z.40)
-        skTe  = (x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.61*x.67*inv(x.68))
-        z.2   = 'g'^(x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*x.61)
-    
-    30. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = inv((x.61*x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*inv((x.62*x.68)))
-        z.2   = 'g'^inv((x.61*x.68))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    31. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = (x.62*x.68*inv(x.60))
-        z     = z.40
-        z.1   = x.59^(x.61*x.68)
-        z.2   = 'g'^(x.62*x.68*inv(x.60))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    32. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = (x.62*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.61*inv(x.68))
-        z.2   = 'g'^(x.62*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    33. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.61*x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.67*inv(x.68))
-        z.2   = 'g'^(x.61*x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    34. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.67*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.67*inv(x.68))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    35. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    36. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*x.68)
-        z     = z.40
-        z.1   = x.59^(x.60*x.68*inv(x.62))
-        z.2   = 'g'^(x.61*x.68)
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    37. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*x.68*inv(x.60))
-        z     = z.40
-        z.1   = x.59^(x.68*inv(x.62))
-        z.2   = 'g'^(x.61*x.68*inv(x.60))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    38. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*inv((x.62*x.68)))
-        z.2   = 'g'^(x.61*inv(x.68))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    39. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^inv((x.62*x.68))
-        z.2   = 'g'^(x.61*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    40. certC = cert(x.60^(x.61*x.62*inv(x.63)), x.64, z.41)
-        skTe  = (x.63*x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*x.69*inv(x.70))
-        z.2   = 'g'^(x.63*x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv(x.63))
-    
-    41. certC = cert(x.60^(x.61*x.62*inv(x.63)), x.64, z.41)
-        skTe  = (x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv(x.63))
-    
-    42. certC = cert(x.60^(x.61*x.62*inv((x.63*x.64))), x.65, z.41)
-        skTe  = (x.63*x.70*inv(x.61))
-        z     = z.41
-        z.1   = x.60^(x.62*x.70*inv(x.64))
-        z.2   = 'g'^(x.63*x.70*inv(x.61))
-        z.3   = x.60^(x.61*x.62*inv((x.63*x.64)))
-    
-    43. certC = cert(x.60^(x.61*x.62*inv((x.63*x.64))), x.65, z.41)
-        skTe  = (x.63*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*inv((x.64*x.70)))
-        z.2   = 'g'^(x.63*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv((x.63*x.64)))
-    
-    44. certC = cert(x.60^(x.61*inv((x.62*x.63))), x.64, z.41)
-        skTe  = (x.62*x.69*inv(x.70))
-        z     = z.41
-        z.1   = x.60^(x.61*x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.62*x.69*inv(x.70))
-        z.3   = x.60^(x.61*inv((x.62*x.63)))
-    
-    45. certC = cert(x.60^(x.61*inv((x.62*x.63))), x.64, z.41)
-        skTe  = (x.62*x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.62*x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*inv((x.62*x.63)))
-    
-    46. certC = cert(x.61^(x.62*x.63*inv((x.64*x.65))), x.66, z.42)
-        skTe  = (x.64*x.71*inv((x.62*x.72)))
-        z     = z.42
-        z.1   = x.61^(x.63*x.71*inv((x.65*x.72)))
-        z.2   = 'g'^(x.64*x.71*inv((x.62*x.72)))
-        z.3   = x.61^(x.62*x.63*inv((x.64*x.65)))
-    
-    47. certC = cert(x.87^x.88, x.89, z.53)
-        skTe  = skTe.48
-        z     = z.53
-        z.1   = x.87^(skTe.48*x.88)
-        z.2   = 'g'^skTe.48
-        z.3   = x.87^x.88
-    
-    48. certC = cert(x.88^inv((skTe.49*x.89)), x.91, z.54)
-        skTe  = skTe.49
-        z     = z.54
-        z.1   = x.88^inv(x.89)
-        z.2   = 'g'^skTe.49
-        z.3   = x.88^inv((skTe.49*x.89))
-    
-    49. certC = cert(x.88^(x.89*inv(skTe.49)), x.91, z.54)
-        skTe  = skTe.49
-        z     = z.54
-        z.1   = x.88^x.89
-        z.2   = 'g'^skTe.49
-        z.3   = x.88^(x.89*inv(skTe.49))
-    
-    50. certC = cert(x.89^(x.90*inv((skTe.50*x.91))), x.93, z.55)
-        skTe  = skTe.50
-        z     = z.55
-        z.1   = x.89^(x.90*inv(x.91))
-        z.2   = 'g'^skTe.50
-        z.3   = x.89^(x.90*inv((skTe.50*x.91)))
-  */
-
-restriction Equality:
-  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
-  // safety formula
-
-lemma session_exist:
-  exists-trace
-  "∃ C T k sid #i #j.
-    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
-    (#i < #j)"
-/*
-guarded formula characterizing all satisfying traces:
-"∃ C T k sid #i #j.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k, sid, T, 'terminal', C ) @ #j)
- ∧
-  #i < #j"
-*/
-simplify
-solve( Completed( k, sid, C, 'chip', T ) @ #i )
-  case CA_FINISH_C
-  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-    case CA_INIT_C
-    solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-      case Generate_static_dh
-      solve( !PkDH( $C, pkC ) ▶₃ #i )
-        case Generate_static_dh
-        solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>,
-                          <pkTe, 'g'^~ltk, ~id_c, ~r2>, T, 'terminal', $C
-               ) @ #j )
-          case CA_FINISH_T
-          solve( CAInitT( <$T, iid.1>, skTe, ~id_c, cert('g'^~ltk, x.1, $C)
-                 ) ▶₁ #j )
-            case CA_INIT_T
-            solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, x) ) @ #vk.14 )
-              case TA_RESPONSE_T
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T>, ca_sk), $T) ) @ #vk.17 )
-                case CA_Sign_ltk
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, $C>, ca_sk), $C) ) @ #vk.35 )
-                  case CA_Sign_dh
-                  solve( !KU( ~r2 ) @ #vk.22 )
-                    case CA_FINISH_C
-                    solve( !KU( ~id_c ) @ #vk.39 )
-                      case TA_CHALLENGE_C
-                      solve( !KU( ~r1 ) @ #vk.40 )
-                        case TA_CHALLENGE_C
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe) ) @ #vk.28 )
-                          case CA_FINISH_C
-                          solve( !KU( 'g'^~skTe ) @ #vk.14 )
-                            case TA_INIT_T
-                            SOLVED // trace found
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma two_session_exist:
-  exists-trace
-  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
-    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
-        (#i < #j)) ∧
-       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
-      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
-     (#i2 < #j2)) ∧
-    (¬(k = k2))"
-/*
-guarded formula characterizing all satisfying traces:
-"∃ C T k k2 sid sid2 #i #j #i2 #j2.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
-  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
-  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
- ∧
-  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
-*/
-by sorry
-
-lemma session_uniqueness:
-  all-traces
-  "∀ A B k sid sid2 role #i #j.
-    ((Completed( k, sid, A, role, B ) @ #i) ∧
-     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
-    (#i = #j)"
-/*
-guarded formula characterizing all counter-examples:
-"∃ A B k sid sid2 role #i #j.
-  (Completed( k, sid, A, role, B ) @ #i) ∧
-  (Completed( k, sid2, A, role, B ) @ #j)
- ∧
-  ¬(#i = #j)"
-*/
-by sorry
-
-lemma consistency:
-  all-traces
-  "∀ C T k k2 sid #i #j.
-    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-       (Completed( k2, sid, T, 'terminal', C ) @ #j)) ∧
-      (¬(∃ #k.1. Corrupted( C ) @ #k.1))) ∧
-     (¬(∃ #k.1. Corrupted( T ) @ #k.1))) ⇒
-    (k = k2)"
-/*
-guarded formula characterizing all counter-examples:
-"∃ C T k k2 sid #i #j.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k2, sid, T, 'terminal', C ) @ #j)
- ∧
-  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥) ∧
-  (¬(k = k2))"
-*/
-by sorry
-
-lemma key_secrecy [reuse]:
-  all-traces
-  "∀ C T role k sid #j.
-    ((((Completed( k, sid, C, role, T ) @ #j) ∧
-       (¬(∃ #m. Corrupted( T ) @ #m))) ∧
-      (¬(∃ #m. Corrupted( C ) @ #m))) ∧
-     (¬(∃ #m. Revealed( T ) @ #m))) ⇒
-    (¬(∃ #m. K( k ) @ #m))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ C T role k sid #j.
-  (Completed( k, sid, C, role, T ) @ #j)
- ∧
-  (∀ #m. (Corrupted( T ) @ #m) ⇒ ⊥) ∧
-  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥) ∧
-  (∀ #m. (Revealed( T ) @ #m) ⇒ ⊥) ∧
-  (∃ #m. (K( k ) @ #m))"
-*/
-by sorry
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* All wellformedness checks were successful. */
-
-/*
-Generated from:
-Tamarin version 1.8.0
-Maude version 3.3.1
-Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
-Compiled at: 2024-01-16 15:38:46.116852601 UTC
-*/
-
-end
-
-==============================================================================
-summary of summaries:
-
-analyzed: BasicEAC.spthy
-
-  processing time: 12.35s
-  
-  session_exist (exists-trace): verified (16 steps)
-  two_session_exist (exists-trace): analysis incomplete (1 steps)
-  session_uniqueness (all-traces): analysis incomplete (1 steps)
-  consistency (all-traces): analysis incomplete (1 steps)
-  key_secrecy (all-traces): analysis incomplete (1 steps)
-
-==============================================================================
diff --git a/results/Basic/two_session_exist.out.45214997 b/results/Basic/two_session_exist.out.45214997
deleted file mode 100644
index 67b64707e2ad6984e747ec7baea9010fc5a99423..0000000000000000000000000000000000000000
--- a/results/Basic/two_session_exist.out.45214997
+++ /dev/null
@@ -1,1014 +0,0 @@
-Execute two_session_exist
-maude tool: 'maude'
- checking version: 3.3.1. OK.
- checking installation: OK.
-theory BasicEAC begin
-
-// Function signature and definition of the equational theory E
-
-builtins: diffie-hellman
-functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
-           cert_sig/1, fst/1, kdf_enc/2, kdf_mac/2, mac/2, pair/2, pk/1, sign/2,
-           snd/1, true/0, verify/3
-equations:
-    cert_id(cert(pk, s, id)) = id,
-    cert_pk(cert(pk, s, id)) = pk,
-    cert_sig(cert(pk, s, id)) = s,
-    fst(<x.1, x.2>) = x.1,
-    snd(<x.1, x.2>) = x.2,
-    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
-
-
-
-
-
-
-
-
-
-macros:
-    verify_cert( cert ) = verify(cert_sig(cert),pair(cert_pk(cert),cert_id(cert)),pk(ca_sk))
-
-rule (modulo E) Generate_static_ltk:
-   [ Fr( ~ltk ) ]
-  -->
-   [ !Pk( $A, pk(~ltk) ), !Ltk( $A, ~ltk ), Out( pk(~ltk) ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Generate_static_dh:
-   [ Fr( ~ltk ) ]
-  -->
-   [ !PkDH( $A, 'g'^~ltk ), !LtkDH( $A, ~ltk ), Out( 'g'^~ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_Sign_ltk:
-   [ !Pk( A, pk ) ]
-  --[ Certified( A ) ]->
-   [
-   !Cert( A, cert(pk, sign(<pk, A>, ca_sk), A) ),
-   Out( cert(pk, sign(<pk, A>, ca_sk), A) )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_Sign_dh:
-   [ !PkDH( A, pk ) ]
-  --[ Certified( A ) ]->
-   [
-   !CertDH( A, cert(pk, sign(<pk, A>, ca_sk), A) ),
-   Out( cert(pk, sign(<pk, A>, ca_sk), A) )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_ltk:
-   [ !Ltk( $A, ltk ) ] --[ Corrupted( $A ) ]-> [ Out( ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_ltk2:
-   [ !LtkDH( $A, ltk ) ] --[ Corrupted( $A ) ]-> [ Out( ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_session:
-   [ !SessionReveal( uid, k ) ] --[ Revealed( uid ) ]-> [ Out( k ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) TA_INIT_T:
-   [ !Cert( $T, certT ), Fr( ~skTe ), Fr( ~iid ) ]
-  -->
-   [
-   Out( <certT, 'g'^~skTe, 'TA_INIT', '1', 't'> ),
-   TAInitT( <$T, ~iid>, ~skTe )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) TA_CHALLENGE_C:
-   [
-   In( <certT, pkTe, 'TA_INIT', '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ),
-   Fr( ~iid )
-   ]
-  --[ Eq( verify_cert(certT), true ) ]->
-   [
-   Out( <~id_c, ~r1, 'TA_CHALLENGE', '2', 'c'> ),
-   TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
-   ]
-
-  /*
-  rule (modulo AC) TA_CHALLENGE_C:
-     [
-     In( <certT, pkTe, 'TA_INIT', '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ),
-     Fr( ~iid )
-     ]
-    --[ Eq( z, true ) ]->
-     [
-     Out( <~id_c, ~r1, 'TA_CHALLENGE', '2', 'c'> ),
-     TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
-     ]
-    variants (modulo AC)
-    1. certT = certT.15
-       z     = verify(cert_sig(certT.15),
-                      <cert_pk(certT.15), cert_id(certT.15)>, pk(ca_sk))
-    
-    2. certT = cert(x.16, sign(<x.16, x.17>, ca_sk), x.17)
-       z     = true
-    
-    3. certT = cert(x.17, x.18, x.19)
-       z     = verify(x.18, <x.17, x.19>, pk(ca_sk))
-  */
-
-rule (modulo E) TA_RESPONSE_T:
-   [
-   In( <id_c, r1, 'TA_CHALLENGE', '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
-   !Ltk( $T, ~skT )
-   ]
-  -->
-   [
-   Out( <sign(<id_c, r1, 'g'^skTe>, ~skT), 'TA_RESPONSE', '3', 't'> ),
-   TAResponseT( <$T, iid>, skTe, id_c )
-   ]
-
-  /*
-  rule (modulo AC) TA_RESPONSE_T:
-     [
-     In( <id_c, r1, 'TA_CHALLENGE', '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
-     !Ltk( $T, ~skT )
-     ]
-    -->
-     [
-     Out( <sign(<id_c, r1, z>, ~skT), 'TA_RESPONSE', '3', 't'> ),
-     TAResponseT( <$T, iid>, skTe, id_c )
-     ]
-    variants (modulo AC)
-    1. skTe  = skTe.12
-       z     = 'g'^skTe.12
-    
-    2. skTe  = one
-       z     = 'g'
-  */
-
-rule (modulo E) TA_COMPLETE_C:
-   [
-   In( <s, 'TA_RESPONSE', '3', 't'> ),
-   TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 )
-   ]
-  --[ Eq( verify(s, <id_c, r1, pkTe>, cert_pk(certT)), true ) ]->
-   [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
-
-  /*
-  rule (modulo AC) TA_COMPLETE_C:
-     [
-     In( <s, 'TA_RESPONSE', '3', 't'> ),
-     TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 )
-     ]
-    --[ Eq( z, true ) ]->
-     [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
-    variants (modulo AC)
-    1. certT = certT.18
-       id_c  = id_c.19
-       pkTe  = pkTe.21
-       r1    = r1.22
-       s     = s.23
-       z     = verify(s.23, <id_c.19, r1.22, pkTe.21>, cert_pk(certT.18))
-    
-    2. certT = cert(x.60, x.61, x.62)
-       id_c  = id_c.33
-       pkTe  = pkTe.35
-       r1    = r1.36
-       s     = s.37
-       z     = verify(s.37, <id_c.33, r1.36, pkTe.35>, x.60)
-    
-    3. certT = cert(pk(x.60), x.61, x.62)
-       id_c  = id_c.33
-       pkTe  = pkTe.35
-       r1    = r1.36
-       s     = sign(<id_c.33, r1.36, pkTe.35>, x.60)
-       z     = true
-  */
-
-rule (modulo E) CA_INIT_C:
-   [
-   !CertDH( $C, certC ), Fr( ~r2 ),
-   TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 )
-   ]
-  -->
-   [
-   Out( <certC, 'CA_INIT', '4', 'c'> ),
-   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, ~r2 )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_INIT_T:
-   [
-   In( <certC, 'CA_INIT', '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c )
-   ]
-  --[ Eq( verify_cert(certC), true ) ]->
-   [
-   Out( <'g'^skTe, 'CA_COMMIT', '5', 't'> ),
-   CAInitT( <$T, iid>, skTe, id_c, certC )
-   ]
-
-  /*
-  rule (modulo AC) CA_INIT_T:
-     [
-     In( <certC, 'CA_INIT', '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c )
-     ]
-    --[ Eq( z.1, true ) ]->
-     [
-     Out( <z, 'CA_COMMIT', '5', 't'> ),
-     CAInitT( <$T, iid>, skTe, id_c, certC )
-     ]
-    variants (modulo AC)
-    1. certC = certC.15
-       skTe  = one
-       z     = 'g'
-       z.1   = verify(cert_sig(certC.15),
-                      <cert_pk(certC.15), cert_id(certC.15)>, pk(ca_sk))
-    
-    2. certC = certC.18
-       skTe  = skTe.21
-       z     = 'g'^skTe.21
-       z.1   = verify(cert_sig(certC.18),
-                      <cert_pk(certC.18), cert_id(certC.18)>, pk(ca_sk))
-    
-    3. certC = cert(x.16, sign(<x.16, x.17>, ca_sk), x.17)
-       skTe  = one
-       z     = 'g'
-       z.1   = true
-    
-    4. certC = cert(x.17, x.18, x.19)
-       skTe  = one
-       z     = 'g'
-       z.1   = verify(x.18, <x.17, x.19>, pk(ca_sk))
-    
-    5. certC = cert(x.115, sign(<x.115, x.116>, ca_sk), x.116)
-       skTe  = skTe.61
-       z     = 'g'^skTe.61
-       z.1   = true
-    
-    6. certC = cert(x.116, x.117, x.118)
-       skTe  = skTe.62
-       z     = 'g'^skTe.62
-       z.1   = verify(x.117, <x.116, x.118>, pk(ca_sk))
-  */
-
-rule (modulo E) CA_FINISH_C:
-   [
-   In( <pkTe_t, 'CA_COMMIT', '5', 't'> ),
-   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ), !LtkDH( $C, ~skC ),
-   !PkDH( $C, pkC )
-   ]
-  --[
-  Eq( pkTe_t, pkTe ),
-  Completed( <kdf_enc(pkTe^~skC, r2), kdf_mac(pkTe^~skC, r2)>,
-             <pkTe, pkC, id_c, r2>, $C, 'chip', cert_id(certT)
-  )
-  ]->
-   [
-   Out( <r2, mac(kdf_mac(pkTe^~skC, r2), pkTe), 'CA_RESPONSE', '6', 'c'> ),
-   CAFinishC( $C, cert_id(certT), kdf_enc(pkTe^~skC, r2) ), Out( iid )
-   ]
-
-  /*
-  rule (modulo AC) CA_FINISH_C:
-     [
-     In( <pkTe_t, 'CA_COMMIT', '5', 't'> ),
-     CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ), !LtkDH( $C, ~skC ),
-     !PkDH( $C, pkC )
-     ]
-    --[
-    Eq( pkTe_t, pkTe ),
-    Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, <pkTe, pkC, id_c, r2>, $C,
-               'chip', z.1
-    )
-    ]->
-     [
-     Out( <r2, mac(kdf_mac(z, r2), pkTe), 'CA_RESPONSE', '6', 'c'> ),
-     CAFinishC( $C, z.1, kdf_enc(z, r2) ), Out( iid )
-     ]
-    variants (modulo AC)
-     1. ~skC  = ~skC.25
-        certT = certT.26
-        pkTe  = pkTe.30
-        z     = pkTe.30^~skC.25
-        z.1   = cert_id(certT.26)
-    
-     2. ~skC  = ~skC.32
-        certT = certT.33
-        pkTe  = z.44^inv(~skC.32)
-        z     = z.44
-        z.1   = cert_id(certT.33)
-    
-     3. ~skC  = ~skC.129
-        certT = certT.130
-        pkTe  = x.254^x.255
-        z     = x.254^(~skC.129*x.255)
-        z.1   = cert_id(certT.130)
-    
-     4. ~skC  = ~skC.129
-        certT = cert(x.254, x.255, z.145)
-        pkTe  = pkTe.134
-        z     = pkTe.134^~skC.129
-        z.1   = z.145
-    
-     5. ~skC  = ~skC.130
-        certT = cert(x.256, x.257, z.146)
-        pkTe  = z.142^inv(~skC.130)
-        z     = z.142
-        z.1   = z.146
-    
-     6. ~skC  = ~skC.134
-        certT = certT.135
-        pkTe  = x.264^inv((~skC.134*x.265))
-        z     = x.264^inv(x.265)
-        z.1   = cert_id(certT.135)
-    
-     7. ~skC  = ~skC.134
-        certT = certT.135
-        pkTe  = x.264^(x.265*inv(~skC.134))
-        z     = x.264^x.265
-        z.1   = cert_id(certT.135)
-    
-     8. ~skC  = ~skC.135
-        certT = certT.136
-        pkTe  = x.265^(x.266*inv((~skC.135*x.267)))
-        z     = x.265^(x.266*inv(x.267))
-        z.1   = cert_id(certT.136)
-    
-     9. ~skC  = ~skC.135
-        certT = cert(x.260, x.261, z.151)
-        pkTe  = x.266^x.267
-        z     = x.266^(~skC.135*x.267)
-        z.1   = z.151
-    
-    10. ~skC  = ~skC.136
-        certT = cert(x.262, x.263, z.152)
-        pkTe  = x.268^inv((~skC.136*x.269))
-        z     = x.268^inv(x.269)
-        z.1   = z.152
-    
-    11. ~skC  = ~skC.136
-        certT = cert(x.262, x.263, z.152)
-        pkTe  = x.268^(x.269*inv(~skC.136))
-        z     = x.268^x.269
-        z.1   = z.152
-    
-    12. ~skC  = ~skC.137
-        certT = cert(x.263, x.264, z.153)
-        pkTe  = x.269^(x.270*inv((~skC.137*x.271)))
-        z     = x.269^(x.270*inv(x.271))
-        z.1   = z.153
-    
-    13. certT = certT.20
-        pkTe  = DH_neutral
-        z     = DH_neutral
-        z.1   = cert_id(certT.20)
-    
-    14. certT = cert(x.46, x.47, z.33)
-        pkTe  = DH_neutral
-        z     = DH_neutral
-        z.1   = z.33
-  */
-
-rule (modulo E) CA_FINISH_T:
-   [
-   In( <r2, tag, 'CA_RESPONSE', '6', 'c'> ),
-   CAInitT( <$T, iid>, skTe, id_c, certC )
-   ]
-  --[
-  Eq( mac(kdf_mac(cert_pk(certC)^skTe, r2), 'g'^skTe), tag ),
-  Completed( <kdf_enc(cert_pk(certC)^skTe, r2), 
-              kdf_mac(cert_pk(certC)^skTe, r2)>,
-             <'g'^skTe, cert_pk(certC), id_c, r2>, $T, 'terminal', cert_id(certC)
-  )
-  ]->
-   [
-   CAFinishT( cert_id(certC), $T, kdf_enc(cert_pk(certC)^skTe, r2) ),
-   !SessionReveal( <$T, iid>, skTe ), Out( iid )
-   ]
-
-  /*
-  rule (modulo AC) CA_FINISH_T:
-     [
-     In( <r2, tag, 'CA_RESPONSE', '6', 'c'> ),
-     CAInitT( <$T, iid>, skTe, id_c, certC )
-     ]
-    --[
-    Eq( mac(kdf_mac(z.1, r2), z.2), tag ),
-    Completed( <kdf_enc(z.1, r2), kdf_mac(z.1, r2)>, <z.2, z.3, id_c, r2>,
-               $T, 'terminal', z
-    )
-    ]->
-     [
-     CAFinishT( z, $T, kdf_enc(z.1, r2) ), !SessionReveal( <$T, iid>, skTe ),
-     Out( iid )
-     ]
-    variants (modulo AC)
-     1. certC = certC.16
-        skTe  = one
-        z     = cert_id(certC.16)
-        z.1   = cert_pk(certC.16)
-        z.2   = 'g'
-        z.3   = cert_pk(certC.16)
-    
-     2. certC = certC.20
-        skTe  = skTe.24
-        z     = cert_id(certC.20)
-        z.1   = cert_pk(certC.20)^skTe.24
-        z.2   = 'g'^skTe.24
-        z.3   = cert_pk(certC.20)
-    
-     3. certC = cert(z.33, x.52, z.32)
-        skTe  = one
-        z     = z.32
-        z.1   = z.33
-        z.2   = 'g'
-        z.3   = z.33
-    
-     4. certC = cert(z.55, x.87, z.52)
-        skTe  = skTe.47
-        z     = z.52
-        z.1   = z.55^skTe.47
-        z.2   = 'g'^skTe.47
-        z.3   = z.55
-    
-     5. certC = cert(DH_neutral, x.85, z.51)
-        skTe  = skTe.46
-        z     = z.51
-        z.1   = DH_neutral
-        z.2   = 'g'^skTe.46
-        z.3   = DH_neutral
-    
-     6. certC = cert(z.34^x.53, x.54, z.33)
-        skTe  = inv(x.53)
-        z     = z.33
-        z.1   = z.34
-        z.2   = 'g'^inv(x.53)
-        z.3   = z.34^x.53
-    
-     7. certC = cert(z.35^(x.54*inv(x.55)), x.56, z.34)
-        skTe  = (x.55*inv(x.54))
-        z     = z.34
-        z.1   = z.35
-        z.2   = 'g'^(x.55*inv(x.54))
-        z.3   = z.35^(x.54*inv(x.55))
-    
-     8. certC = cert(x.53^(x.54*x.55), x.56, z.34)
-        skTe  = inv(x.54)
-        z     = z.34
-        z.1   = x.53^x.55
-        z.2   = 'g'^inv(x.54)
-        z.3   = x.53^(x.54*x.55)
-    
-     9. certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.35)
-        skTe  = (x.57*inv(x.56))
-        z     = z.35
-        z.1   = x.54^x.55
-        z.2   = 'g'^(x.57*inv(x.56))
-        z.3   = x.54^(x.55*x.56*inv(x.57))
-    
-    10. certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.35)
-        skTe  = (x.57*inv(x.55))
-        z     = z.35
-        z.1   = x.54^inv(x.56)
-        z.2   = 'g'^(x.57*inv(x.55))
-        z.3   = x.54^(x.55*inv((x.56*x.57)))
-    
-    11. certC = cert(z.54^inv(skTe.48), x.89, z.53)
-        skTe  = skTe.48
-        z     = z.53
-        z.1   = z.54
-        z.2   = 'g'^skTe.48
-        z.3   = z.54^inv(skTe.48)
-    
-    12. certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))), x.60, z.36)
-        skTe  = (x.59*inv(x.57))
-        z     = z.36
-        z.1   = x.55^(x.56*inv(x.58))
-        z.2   = 'g'^(x.59*inv(x.57))
-        z.3   = x.55^(x.56*x.57*inv((x.58*x.59)))
-    
-    13. certC = cert(x.57^x.58, x.59, z.38)
-        skTe  = inv((x.58*x.64))
-        z     = z.38
-        z.1   = x.57^inv(x.64)
-        z.2   = 'g'^inv((x.58*x.64))
-        z.3   = x.57^x.58
-    
-    14. certC = cert(x.57^x.58, x.59, z.38)
-        skTe  = (x.64*inv(x.58))
-        z     = z.38
-        z.1   = x.57^x.64
-        z.2   = 'g'^(x.64*inv(x.58))
-        z.3   = x.57^x.58
-    
-    15. certC = cert(x.57^inv(x.58), x.59, z.38)
-        skTe  = inv(x.64)
-        z     = z.38
-        z.1   = x.57^inv((x.58*x.64))
-        z.2   = 'g'^inv(x.64)
-        z.3   = x.57^inv(x.58)
-    
-    16. certC = cert(x.57^inv(x.58), x.59, z.38)
-        skTe  = (x.58*x.64)
-        z     = z.38
-        z.1   = x.57^x.64
-        z.2   = 'g'^(x.58*x.64)
-        z.3   = x.57^inv(x.58)
-    
-    17. certC = cert(x.58^x.59, x.60, z.39)
-        skTe  = (x.65*inv((x.59*x.66)))
-        z     = z.39
-        z.1   = x.58^(x.65*inv(x.66))
-        z.2   = 'g'^(x.65*inv((x.59*x.66)))
-        z.3   = x.58^x.59
-    
-    18. certC = cert(x.58^inv(x.59), x.60, z.39)
-        skTe  = (x.65*inv(x.66))
-        z     = z.39
-        z.1   = x.58^(x.65*inv((x.59*x.66)))
-        z.2   = 'g'^(x.65*inv(x.66))
-        z.3   = x.58^inv(x.59)
-    
-    19. certC = cert(x.58^inv((x.59*x.60)), x.61, z.39)
-        skTe  = (x.59*x.66)
-        z     = z.39
-        z.1   = x.58^(x.66*inv(x.60))
-        z.2   = 'g'^(x.59*x.66)
-        z.3   = x.58^inv((x.59*x.60))
-    
-    20. certC = cert(x.58^inv((x.59*x.60)), x.61, z.39)
-        skTe  = (x.59*inv(x.66))
-        z     = z.39
-        z.1   = x.58^inv((x.60*x.66))
-        z.2   = 'g'^(x.59*inv(x.66))
-        z.3   = x.58^inv((x.59*x.60))
-    
-    21. certC = cert(x.58^(x.59*x.60), x.61, z.39)
-        skTe  = inv((x.59*x.66))
-        z     = z.39
-        z.1   = x.58^(x.60*inv(x.66))
-        z.2   = 'g'^inv((x.59*x.66))
-        z.3   = x.58^(x.59*x.60)
-    
-    22. certC = cert(x.58^(x.59*x.60), x.61, z.39)
-        skTe  = (x.66*inv(x.59))
-        z     = z.39
-        z.1   = x.58^(x.60*x.66)
-        z.2   = 'g'^(x.66*inv(x.59))
-        z.3   = x.58^(x.59*x.60)
-    
-    23. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = inv(x.66)
-        z     = z.39
-        z.1   = x.58^(x.59*inv((x.60*x.66)))
-        z.2   = 'g'^inv(x.66)
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    24. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = inv((x.59*x.66))
-        z     = z.39
-        z.1   = x.58^inv((x.60*x.66))
-        z.2   = 'g'^inv((x.59*x.66))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    25. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*x.66)
-        z     = z.39
-        z.1   = x.58^(x.59*x.66)
-        z.2   = 'g'^(x.60*x.66)
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    26. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*x.66*inv(x.59))
-        z     = z.39
-        z.1   = x.58^x.66
-        z.2   = 'g'^(x.60*x.66*inv(x.59))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    27. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*inv((x.59*x.66)))
-        z     = z.39
-        z.1   = x.58^inv(x.66)
-        z.2   = 'g'^(x.60*inv((x.59*x.66)))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    28. certC = cert(x.59^inv((x.60*x.61)), x.62, z.40)
-        skTe  = (x.60*x.67*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.60*x.67*inv(x.68))
-        z.3   = x.59^inv((x.60*x.61))
-    
-    29. certC = cert(x.59^(x.60*x.61), x.62, z.40)
-        skTe  = (x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.61*x.67*inv(x.68))
-        z.2   = 'g'^(x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*x.61)
-    
-    30. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = inv((x.61*x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*inv((x.62*x.68)))
-        z.2   = 'g'^inv((x.61*x.68))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    31. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = (x.62*x.68*inv(x.60))
-        z     = z.40
-        z.1   = x.59^(x.61*x.68)
-        z.2   = 'g'^(x.62*x.68*inv(x.60))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    32. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = (x.62*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.61*inv(x.68))
-        z.2   = 'g'^(x.62*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    33. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.61*x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.67*inv(x.68))
-        z.2   = 'g'^(x.61*x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    34. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.67*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.67*inv(x.68))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    35. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    36. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*x.68)
-        z     = z.40
-        z.1   = x.59^(x.60*x.68*inv(x.62))
-        z.2   = 'g'^(x.61*x.68)
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    37. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*x.68*inv(x.60))
-        z     = z.40
-        z.1   = x.59^(x.68*inv(x.62))
-        z.2   = 'g'^(x.61*x.68*inv(x.60))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    38. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*inv((x.62*x.68)))
-        z.2   = 'g'^(x.61*inv(x.68))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    39. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^inv((x.62*x.68))
-        z.2   = 'g'^(x.61*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    40. certC = cert(x.60^(x.61*x.62*inv(x.63)), x.64, z.41)
-        skTe  = (x.63*x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*x.69*inv(x.70))
-        z.2   = 'g'^(x.63*x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv(x.63))
-    
-    41. certC = cert(x.60^(x.61*x.62*inv(x.63)), x.64, z.41)
-        skTe  = (x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv(x.63))
-    
-    42. certC = cert(x.60^(x.61*x.62*inv((x.63*x.64))), x.65, z.41)
-        skTe  = (x.63*x.70*inv(x.61))
-        z     = z.41
-        z.1   = x.60^(x.62*x.70*inv(x.64))
-        z.2   = 'g'^(x.63*x.70*inv(x.61))
-        z.3   = x.60^(x.61*x.62*inv((x.63*x.64)))
-    
-    43. certC = cert(x.60^(x.61*x.62*inv((x.63*x.64))), x.65, z.41)
-        skTe  = (x.63*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*inv((x.64*x.70)))
-        z.2   = 'g'^(x.63*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv((x.63*x.64)))
-    
-    44. certC = cert(x.60^(x.61*inv((x.62*x.63))), x.64, z.41)
-        skTe  = (x.62*x.69*inv(x.70))
-        z     = z.41
-        z.1   = x.60^(x.61*x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.62*x.69*inv(x.70))
-        z.3   = x.60^(x.61*inv((x.62*x.63)))
-    
-    45. certC = cert(x.60^(x.61*inv((x.62*x.63))), x.64, z.41)
-        skTe  = (x.62*x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.62*x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*inv((x.62*x.63)))
-    
-    46. certC = cert(x.61^(x.62*x.63*inv((x.64*x.65))), x.66, z.42)
-        skTe  = (x.64*x.71*inv((x.62*x.72)))
-        z     = z.42
-        z.1   = x.61^(x.63*x.71*inv((x.65*x.72)))
-        z.2   = 'g'^(x.64*x.71*inv((x.62*x.72)))
-        z.3   = x.61^(x.62*x.63*inv((x.64*x.65)))
-    
-    47. certC = cert(x.87^x.88, x.89, z.53)
-        skTe  = skTe.48
-        z     = z.53
-        z.1   = x.87^(skTe.48*x.88)
-        z.2   = 'g'^skTe.48
-        z.3   = x.87^x.88
-    
-    48. certC = cert(x.88^inv((skTe.49*x.89)), x.91, z.54)
-        skTe  = skTe.49
-        z     = z.54
-        z.1   = x.88^inv(x.89)
-        z.2   = 'g'^skTe.49
-        z.3   = x.88^inv((skTe.49*x.89))
-    
-    49. certC = cert(x.88^(x.89*inv(skTe.49)), x.91, z.54)
-        skTe  = skTe.49
-        z     = z.54
-        z.1   = x.88^x.89
-        z.2   = 'g'^skTe.49
-        z.3   = x.88^(x.89*inv(skTe.49))
-    
-    50. certC = cert(x.89^(x.90*inv((skTe.50*x.91))), x.93, z.55)
-        skTe  = skTe.50
-        z     = z.55
-        z.1   = x.89^(x.90*inv(x.91))
-        z.2   = 'g'^skTe.50
-        z.3   = x.89^(x.90*inv((skTe.50*x.91)))
-  */
-
-restriction Equality:
-  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
-  // safety formula
-
-lemma session_exist:
-  exists-trace
-  "∃ C T k sid #i #j.
-    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-     (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
-    (#i < #j)"
-/*
-guarded formula characterizing all satisfying traces:
-"∃ C T k sid #i #j.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k, sid, T, 'terminal', C ) @ #j)
- ∧
-  #i < #j"
-*/
-by sorry
-
-lemma two_session_exist:
-  exists-trace
-  "∃ C T k k2 sid sid2 #i #j #i2 #j2.
-    ((((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-         (Completed( k, sid, T, 'terminal', C ) @ #j)) ∧
-        (#i < #j)) ∧
-       (Completed( k2, sid2, C, 'chip', T ) @ #i2)) ∧
-      (Completed( k2, sid2, T, 'terminal', C ) @ #j2)) ∧
-     (#i2 < #j2)) ∧
-    (¬(k = k2))"
-/*
-guarded formula characterizing all satisfying traces:
-"∃ C T k k2 sid sid2 #i #j #i2 #j2.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k, sid, T, 'terminal', C ) @ #j) ∧
-  (Completed( k2, sid2, C, 'chip', T ) @ #i2) ∧
-  (Completed( k2, sid2, T, 'terminal', C ) @ #j2)
- ∧
-  (#i < #j) ∧ (#i2 < #j2) ∧ (¬(k = k2))"
-*/
-simplify
-solve( Completed( k, sid, C, 'chip', T ) @ #i )
-  case CA_FINISH_C
-  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-    case CA_INIT_C
-    solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-      case Generate_static_dh
-      solve( !PkDH( $C, pkC ) ▶₃ #i )
-        case Generate_static_dh
-        solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>,
-                          <pkTe, 'g'^~ltk, ~id_c, ~r2>, T, 'terminal', $C
-               ) @ #j )
-          case CA_FINISH_T
-          solve( CAInitT( <$T, iid.1>, skTe, ~id_c, cert('g'^~ltk, x.1, $C)
-                 ) ▶₁ #j )
-            case CA_INIT_T
-            solve( Completed( k2, sid2, $C, 'chip', $T ) @ #i2 )
-              case CA_FINISH_C
-              solve( CAInitC( <$C, iid.1>, cert(x.1, x.2, $T), pkTe, id_c.1, r1.1, r2.1
-                     ) ▶₁ #i2 )
-                case CA_INIT_C
-                solve( !LtkDH( $C, ~skC.1 ) ▶₂ #i2 )
-                  case Generate_static_dh
-                  solve( !PkDH( $C, pkC ) ▶₃ #i2 )
-                    case Generate_static_dh
-                    solve( Completed( <kdf_enc(z, ~r2.1), kdf_mac(z, ~r2.1)>,
-                                      <pkTe, 'g'^~ltk, ~id_c.1, ~r2.1>, $T, 'terminal', $C
-                           ) @ #j2 )
-                      case CA_FINISH_T
-                      solve( CAInitT( <$T, iid.3>, skTe.1, ~id_c.1, cert('g'^~ltk, x.2, $C)
-                             ) ▶₁ #j2 )
-                        case CA_INIT_T
-                        solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, x) ) @ #vk.18 )
-                          case TA_RESPONSE_T
-                          solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe.1>, x) ) @ #vk.53 )
-                            case TA_RESPONSE_T
-                            solve( !KU( cert(pk(~skT), sign(<pk(~skT), $T>, ca_sk), $T) ) @ #vk.22 )
-                              case CA_Sign_ltk
-                              solve( !KU( cert('g'^~skC, sign(<'g'^~skC, $C>, ca_sk), $C) ) @ #vk.46 )
-                                case CA_Sign_dh
-                                solve( !KU( cert(pk(~skT.1), sign(<pk(~skT.1), $T>, ca_sk), $T)
-                                       ) @ #vk.54 )
-                                  case CA_Sign_ltk
-                                  solve( !KU( cert('g'^~skC.1, sign(<'g'^~skC.1, $C>, ca_sk), $C)
-                                         ) @ #vk.57 )
-                                    case CA_Sign_dh
-                                    solve( !KU( ~r2 ) @ #vk.30 )
-                                      case CA_FINISH_C
-                                      solve( !KU( ~id_c ) @ #vk.51 )
-                                        case TA_CHALLENGE_C
-                                        solve( !KU( ~r2.1 ) @ #vk.56 )
-                                          case CA_FINISH_C
-                                          solve( !KU( ~id_c.1 ) @ #vk.58 )
-                                            case TA_CHALLENGE_C
-                                            solve( !KU( ~r1 ) @ #vk.54 )
-                                              case TA_CHALLENGE_C
-                                              solve( !KU( ~r1.1 ) @ #vk.59 )
-                                                case TA_CHALLENGE_C
-                                                solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe)
-                                                       ) @ #vk.42 )
-                                                  case CA_FINISH_C
-                                                  solve( !KU( 'g'^~skTe ) @ #vk.26 )
-                                                    case TA_INIT_T
-                                                    solve( !KU( mac(kdf_mac('g'^(~skC.1*~skTe.1), ~r2.1),
-                                                                    'g'^~skTe.1)
-                                                           ) @ #vk.59 )
-                                                      case CA_FINISH_C
-                                                      solve( !KU( 'g'^~skTe.1 ) @ #vk.59 )
-                                                        case TA_INIT_T
-                                                        SOLVED // trace found
-                                                      qed
-                                                    qed
-                                                  qed
-                                                qed
-                                              qed
-                                            qed
-                                          qed
-                                        qed
-                                      qed
-                                    qed
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma session_uniqueness:
-  all-traces
-  "∀ A B k sid sid2 role #i #j.
-    ((Completed( k, sid, A, role, B ) @ #i) ∧
-     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
-    (#i = #j)"
-/*
-guarded formula characterizing all counter-examples:
-"∃ A B k sid sid2 role #i #j.
-  (Completed( k, sid, A, role, B ) @ #i) ∧
-  (Completed( k, sid2, A, role, B ) @ #j)
- ∧
-  ¬(#i = #j)"
-*/
-by sorry
-
-lemma consistency:
-  all-traces
-  "∀ C T k k2 sid #i #j.
-    ((((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-       (Completed( k2, sid, T, 'terminal', C ) @ #j)) ∧
-      (¬(∃ #k.1. Corrupted( C ) @ #k.1))) ∧
-     (¬(∃ #k.1. Corrupted( T ) @ #k.1))) ⇒
-    (k = k2)"
-/*
-guarded formula characterizing all counter-examples:
-"∃ C T k k2 sid #i #j.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k2, sid, T, 'terminal', C ) @ #j)
- ∧
-  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥) ∧
-  (¬(k = k2))"
-*/
-by sorry
-
-lemma key_secrecy [reuse]:
-  all-traces
-  "∀ C T role k sid #j.
-    ((((Completed( k, sid, C, role, T ) @ #j) ∧
-       (¬(∃ #m. Corrupted( T ) @ #m))) ∧
-      (¬(∃ #m. Corrupted( C ) @ #m))) ∧
-     (¬(∃ #m. Revealed( T ) @ #m))) ⇒
-    (¬(∃ #m. K( k ) @ #m))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ C T role k sid #j.
-  (Completed( k, sid, C, role, T ) @ #j)
- ∧
-  (∀ #m. (Corrupted( T ) @ #m) ⇒ ⊥) ∧
-  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥) ∧
-  (∀ #m. (Revealed( T ) @ #m) ⇒ ⊥) ∧
-  (∃ #m. (K( k ) @ #m))"
-*/
-by sorry
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* All wellformedness checks were successful. */
-
-/*
-Generated from:
-Tamarin version 1.8.0
-Maude version 3.3.1
-Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
-Compiled at: 2024-01-16 15:38:46.116852601 UTC
-*/
-
-end
-
-==============================================================================
-summary of summaries:
-
-analyzed: BasicEAC.spthy
-
-  processing time: 1585.12s
-  
-  session_exist (exists-trace): analysis incomplete (1 steps)
-  two_session_exist (exists-trace): verified (30 steps)
-  session_uniqueness (all-traces): analysis incomplete (1 steps)
-  consistency (all-traces): analysis incomplete (1 steps)
-  key_secrecy (all-traces): analysis incomplete (1 steps)
-
-==============================================================================
diff --git a/results/cpu.45369362 b/results/cpu.45369362
deleted file mode 100644
index dfe137bca96ce750fa4d6cb480d33a24d8086aa9..0000000000000000000000000000000000000000
--- a/results/cpu.45369362
+++ /dev/null
@@ -1,104 +0,0 @@
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
-model name	: Intel(R) Xeon(R) Platinum 8470Q
diff --git a/results/eac_tamarin.out.45369362 b/results/eac_tamarin.out.45369362
deleted file mode 100644
index a19df44e0dc9711abf86cb05e89c4387a056b2e0..0000000000000000000000000000000000000000
--- a/results/eac_tamarin.out.45369362
+++ /dev/null
@@ -1,6750 +0,0 @@
-maude tool: 'maude'
- checking version: 3.3.1. OK.
- checking installation: OK.
-theory BasicEAC begin
-
-// Function signature and definition of the equational theory E
-
-builtins: diffie-hellman
-functions: ca_sk/0[private,destructor], cert/3, cert_id/1, cert_pk/1,
-           cert_sig/1, fst/1, kdf_enc/2, kdf_mac/2, mac/2, pair/2, pk/1, sign/2,
-           snd/1, true/0, verify/3
-equations:
-    cert_id(cert(pk, s, id)) = id,
-    cert_pk(cert(pk, s, id)) = pk,
-    cert_sig(cert(pk, s, id)) = s,
-    fst(<x.1, x.2>) = x.1,
-    snd(<x.1, x.2>) = x.2,
-    verify(sign(x.1, x.2), x.1, pk(x.2)) = true
-
-
-
-
-
-
-
-
-
-macros:
-    verify_cert( cert ) = verify(cert_sig(cert),pair(cert_pk(cert),cert_id(cert)),pk(ca_sk))
-
-rule (modulo E) Publish_ca_pk:
-   [ ] --> [ Out( pk(ca_sk) ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Generate_static_ltk:
-   [ Fr( ~ltk ) ]
-  -->
-   [ !Pk( $A, pk(~ltk) ), !Ltk( $A, ~ltk ), Out( pk(~ltk) ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Generate_static_dh:
-   [ Fr( ~ltk ) ]
-  -->
-   [ !PkDH( $A, 'g'^~ltk ), !LtkDH( $A, ~ltk ), Out( 'g'^~ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_Sign_ltk:
-   [ !Pk( A, pk ) ]
-  -->
-   [
-   !Cert( A, cert(pk, sign(<pk, A>, ca_sk), A) ),
-   Out( cert(pk, sign(<pk, A>, ca_sk), A) )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_Sign_dh:
-   [ !PkDH( A, pk ) ]
-  -->
-   [
-   !CertDH( A, cert(pk, sign(<pk, A>, ca_sk), A) ),
-   Out( cert(pk, sign(<pk, A>, ca_sk), A) )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_ltk:
-   [ !Ltk( $A, ltk ) ] --[ Corrupted( $A ) ]-> [ Out( ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_dh:
-   [ !LtkDH( $A, ltk ) ] --[ Corrupted( $A ) ]-> [ Out( ltk ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) Reveal_session:
-   [ !SessionReveal( uid, k ) ] --[ Revealed( uid ) ]-> [ Out( k ) ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) TA_INIT_T:
-   [ !Cert( $T, certT ), Fr( ~skTe ), Fr( ~iid ) ]
-  -->
-   [
-   Out( <certT, 'g'^~skTe, 'TA_INIT', '1', 't'> ),
-   TAInitT( <$T, ~iid>, ~skTe )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) TA_CHALLENGE_C:
-   [
-   In( <certT, pkTe, 'TA_INIT', '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ),
-   Fr( ~iid )
-   ]
-  --[ Eq( verify_cert(certT), true ) ]->
-   [
-   Out( <~id_c, ~r1, 'TA_CHALLENGE', '2', 'c'> ),
-   TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
-   ]
-
-  /*
-  rule (modulo AC) TA_CHALLENGE_C:
-     [
-     In( <certT, pkTe, 'TA_INIT', '1', 't'> ), Fr( ~r1 ), Fr( ~id_c ),
-     Fr( ~iid )
-     ]
-    --[ Eq( z, true ) ]->
-     [
-     Out( <~id_c, ~r1, 'TA_CHALLENGE', '2', 'c'> ),
-     TAChallengeC( <$C, ~iid>, certT, pkTe, ~id_c, ~r1 )
-     ]
-    variants (modulo AC)
-    1. certT = certT.15
-       z     = verify(cert_sig(certT.15),
-                      <cert_pk(certT.15), cert_id(certT.15)>, pk(ca_sk))
-    
-    2. certT = cert(x.16, sign(<x.16, x.17>, ca_sk), x.17)
-       z     = true
-    
-    3. certT = cert(x.17, x.18, x.19)
-       z     = verify(x.18, <x.17, x.19>, pk(ca_sk))
-  */
-
-rule (modulo E) TA_RESPONSE_T:
-   [
-   In( <id_c, r1, 'TA_CHALLENGE', '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
-   !Ltk( $T, ~skT )
-   ]
-  -->
-   [
-   Out( <sign(<id_c, r1, 'g'^skTe>, ~skT), 'TA_RESPONSE', '3', 't'> ),
-   TAResponseT( <$T, iid>, skTe, id_c )
-   ]
-
-  /*
-  rule (modulo AC) TA_RESPONSE_T:
-     [
-     In( <id_c, r1, 'TA_CHALLENGE', '2', 'c'> ), TAInitT( <$T, iid>, skTe ),
-     !Ltk( $T, ~skT )
-     ]
-    -->
-     [
-     Out( <sign(<id_c, r1, z>, ~skT), 'TA_RESPONSE', '3', 't'> ),
-     TAResponseT( <$T, iid>, skTe, id_c )
-     ]
-    variants (modulo AC)
-    1. skTe  = skTe.12
-       z     = 'g'^skTe.12
-    
-    2. skTe  = one
-       z     = 'g'
-  */
-
-rule (modulo E) TA_COMPLETE_C:
-   [
-   In( <s, 'TA_RESPONSE', '3', 't'> ),
-   TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 )
-   ]
-  --[ Eq( verify(s, <id_c, r1, pkTe>, cert_pk(certT)), true ) ]->
-   [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
-
-  /*
-  rule (modulo AC) TA_COMPLETE_C:
-     [
-     In( <s, 'TA_RESPONSE', '3', 't'> ),
-     TAChallengeC( <$C, iid>, certT, pkTe, id_c, r1 )
-     ]
-    --[ Eq( z, true ) ]->
-     [ TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 ) ]
-    variants (modulo AC)
-    1. certT = certT.18
-       id_c  = id_c.19
-       pkTe  = pkTe.21
-       r1    = r1.22
-       s     = s.23
-       z     = verify(s.23, <id_c.19, r1.22, pkTe.21>, cert_pk(certT.18))
-    
-    2. certT = cert(x.60, x.61, x.62)
-       id_c  = id_c.33
-       pkTe  = pkTe.35
-       r1    = r1.36
-       s     = s.37
-       z     = verify(s.37, <id_c.33, r1.36, pkTe.35>, x.60)
-    
-    3. certT = cert(pk(x.60), x.61, x.62)
-       id_c  = id_c.33
-       pkTe  = pkTe.35
-       r1    = r1.36
-       s     = sign(<id_c.33, r1.36, pkTe.35>, x.60)
-       z     = true
-  */
-
-rule (modulo E) CA_INIT_C:
-   [
-   !CertDH( $C, certC ), Fr( ~r2 ),
-   TACompleteC( <$C, iid>, certT, pkTe, id_c, r1 )
-   ]
-  -->
-   [
-   Out( <certC, 'CA_INIT', '4', 'c'> ),
-   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, ~r2 )
-   ]
-
-  /* has exactly the trivial AC variant */
-
-rule (modulo E) CA_INIT_T:
-   [
-   In( <certC, 'CA_INIT', '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c )
-   ]
-  --[ Eq( verify_cert(certC), true ) ]->
-   [
-   Out( <'g'^skTe, 'CA_COMMIT', '5', 't'> ),
-   CAInitT( <$T, iid>, skTe, id_c, certC )
-   ]
-
-  /*
-  rule (modulo AC) CA_INIT_T:
-     [
-     In( <certC, 'CA_INIT', '4', 'c'> ), TAResponseT( <$T, iid>, skTe, id_c )
-     ]
-    --[ Eq( z.1, true ) ]->
-     [
-     Out( <z, 'CA_COMMIT', '5', 't'> ),
-     CAInitT( <$T, iid>, skTe, id_c, certC )
-     ]
-    variants (modulo AC)
-    1. certC = certC.15
-       skTe  = one
-       z     = 'g'
-       z.1   = verify(cert_sig(certC.15),
-                      <cert_pk(certC.15), cert_id(certC.15)>, pk(ca_sk))
-    
-    2. certC = certC.18
-       skTe  = skTe.21
-       z     = 'g'^skTe.21
-       z.1   = verify(cert_sig(certC.18),
-                      <cert_pk(certC.18), cert_id(certC.18)>, pk(ca_sk))
-    
-    3. certC = cert(x.16, sign(<x.16, x.17>, ca_sk), x.17)
-       skTe  = one
-       z     = 'g'
-       z.1   = true
-    
-    4. certC = cert(x.17, x.18, x.19)
-       skTe  = one
-       z     = 'g'
-       z.1   = verify(x.18, <x.17, x.19>, pk(ca_sk))
-    
-    5. certC = cert(x.115, sign(<x.115, x.116>, ca_sk), x.116)
-       skTe  = skTe.61
-       z     = 'g'^skTe.61
-       z.1   = true
-    
-    6. certC = cert(x.116, x.117, x.118)
-       skTe  = skTe.62
-       z     = 'g'^skTe.62
-       z.1   = verify(x.117, <x.116, x.118>, pk(ca_sk))
-  */
-
-rule (modulo E) CA_FINISH_C:
-   [
-   In( <pkTe_t, 'CA_COMMIT', '5', 't'> ),
-   CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ), !LtkDH( $C, ~skC )
-   ]
-  --[
-  Eq( pkTe_t, pkTe ),
-  Completed( <kdf_enc(pkTe^~skC, r2), kdf_mac(pkTe^~skC, r2)>,
-             <pkTe, 'g'^~skC, id_c, r2>, $C, 'chip', cert_id(certT)
-  )
-  ]->
-   [
-   Out( <r2, mac(kdf_mac(pkTe^~skC, r2), pkTe), 'CA_RESPONSE', '6', 'c'> ),
-   CAFinishC( $C, cert_id(certT), kdf_enc(pkTe^~skC, r2) ), Out( iid )
-   ]
-
-  /*
-  rule (modulo AC) CA_FINISH_C:
-     [
-     In( <pkTe_t, 'CA_COMMIT', '5', 't'> ),
-     CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ), !LtkDH( $C, ~skC )
-     ]
-    --[
-    Eq( pkTe_t, pkTe ),
-    Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, <pkTe, 'g'^~skC, id_c, r2>,
-               $C, 'chip', z.1
-    )
-    ]->
-     [
-     Out( <r2, mac(kdf_mac(z, r2), pkTe), 'CA_RESPONSE', '6', 'c'> ),
-     CAFinishC( $C, z.1, kdf_enc(z, r2) ), Out( iid )
-     ]
-    variants (modulo AC)
-     1. ~skC  = ~skC.23
-        certT = certT.24
-        pkTe  = pkTe.27
-        z     = pkTe.27^~skC.23
-        z.1   = cert_id(certT.24)
-    
-     2. ~skC  = ~skC.30
-        certT = certT.31
-        pkTe  = z.41^inv(~skC.30)
-        z     = z.41
-        z.1   = cert_id(certT.31)
-    
-     3. ~skC  = ~skC.216
-        certT = certT.217
-        pkTe  = x.428^x.429
-        z     = x.428^(~skC.216*x.429)
-        z.1   = cert_id(certT.217)
-    
-     4. ~skC  = ~skC.216
-        certT = cert(x.428, x.429, z.231)
-        pkTe  = pkTe.220
-        z     = pkTe.220^~skC.216
-        z.1   = z.231
-    
-     5. ~skC  = ~skC.217
-        certT = cert(x.430, x.431, z.232)
-        pkTe  = z.228^inv(~skC.217)
-        z     = z.228
-        z.1   = z.232
-    
-     6. ~skC  = ~skC.220
-        certT = certT.221
-        pkTe  = x.436^inv((~skC.220*x.437))
-        z     = x.436^inv(x.437)
-        z.1   = cert_id(certT.221)
-    
-     7. ~skC  = ~skC.220
-        certT = certT.221
-        pkTe  = x.436^(x.437*inv(~skC.220))
-        z     = x.436^x.437
-        z.1   = cert_id(certT.221)
-    
-     8. ~skC  = ~skC.221
-        certT = certT.222
-        pkTe  = x.437^(x.438*inv((~skC.221*x.439)))
-        z     = x.437^(x.438*inv(x.439))
-        z.1   = cert_id(certT.222)
-    
-     9. ~skC  = ~skC.221
-        certT = cert(x.433, x.434, z.236)
-        pkTe  = x.438^x.439
-        z     = x.438^(~skC.221*x.439)
-        z.1   = z.236
-    
-    10. ~skC  = ~skC.222
-        certT = cert(x.435, x.436, z.237)
-        pkTe  = x.440^inv((~skC.222*x.441))
-        z     = x.440^inv(x.441)
-        z.1   = z.237
-    
-    11. ~skC  = ~skC.222
-        certT = cert(x.435, x.436, z.237)
-        pkTe  = x.440^(x.441*inv(~skC.222))
-        z     = x.440^x.441
-        z.1   = z.237
-    
-    12. ~skC  = ~skC.223
-        certT = cert(x.436, x.437, z.238)
-        pkTe  = x.441^(x.442*inv((~skC.223*x.443)))
-        z     = x.441^(x.442*inv(x.443))
-        z.1   = z.238
-    
-    13. certT = certT.19
-        pkTe  = DH_neutral
-        z     = DH_neutral
-        z.1   = cert_id(certT.19)
-    
-    14. certT = cert(x.233, x.234, z.126)
-        pkTe  = DH_neutral
-        z     = DH_neutral
-        z.1   = z.126
-  */
-
-rule (modulo E) CA_FINISH_T:
-   [
-   In( <r2, tag, 'CA_RESPONSE', '6', 'c'> ),
-   CAInitT( <$T, iid>, skTe, id_c, certC )
-   ]
-  --[
-  Eq( mac(kdf_mac(cert_pk(certC)^skTe, r2), 'g'^skTe), tag ),
-  Completed( <kdf_enc(cert_pk(certC)^skTe, r2), 
-              kdf_mac(cert_pk(certC)^skTe, r2)>,
-             <'g'^skTe, cert_pk(certC), id_c, r2>, $T, 'terminal', cert_id(certC)
-  ),
-  Finished( <'g'^skTe, cert_pk(certC), id_c, r2> )
-  ]->
-   [
-   CAFinishT( cert_id(certC), $T, kdf_enc(cert_pk(certC)^skTe, r2) ),
-   !SessionReveal( <$T, iid>, skTe ), Out( iid )
-   ]
-
-  /*
-  rule (modulo AC) CA_FINISH_T:
-     [
-     In( <r2, tag, 'CA_RESPONSE', '6', 'c'> ),
-     CAInitT( <$T, iid>, skTe, id_c, certC )
-     ]
-    --[
-    Eq( mac(kdf_mac(z.1, r2), z.2), tag ),
-    Completed( <kdf_enc(z.1, r2), kdf_mac(z.1, r2)>, <z.2, z.3, id_c, r2>,
-               $T, 'terminal', z
-    ),
-    Finished( <z.2, z.3, id_c, r2> )
-    ]->
-     [
-     CAFinishT( z, $T, kdf_enc(z.1, r2) ), !SessionReveal( <$T, iid>, skTe ),
-     Out( iid )
-     ]
-    variants (modulo AC)
-     1. certC = certC.16
-        skTe  = one
-        z     = cert_id(certC.16)
-        z.1   = cert_pk(certC.16)
-        z.2   = 'g'
-        z.3   = cert_pk(certC.16)
-    
-     2. certC = certC.20
-        skTe  = skTe.24
-        z     = cert_id(certC.20)
-        z.1   = cert_pk(certC.20)^skTe.24
-        z.2   = 'g'^skTe.24
-        z.3   = cert_pk(certC.20)
-    
-     3. certC = cert(z.33, x.52, z.32)
-        skTe  = one
-        z     = z.32
-        z.1   = z.33
-        z.2   = 'g'
-        z.3   = z.33
-    
-     4. certC = cert(z.55, x.87, z.52)
-        skTe  = skTe.47
-        z     = z.52
-        z.1   = z.55^skTe.47
-        z.2   = 'g'^skTe.47
-        z.3   = z.55
-    
-     5. certC = cert(DH_neutral, x.85, z.51)
-        skTe  = skTe.46
-        z     = z.51
-        z.1   = DH_neutral
-        z.2   = 'g'^skTe.46
-        z.3   = DH_neutral
-    
-     6. certC = cert(z.34^x.53, x.54, z.33)
-        skTe  = inv(x.53)
-        z     = z.33
-        z.1   = z.34
-        z.2   = 'g'^inv(x.53)
-        z.3   = z.34^x.53
-    
-     7. certC = cert(z.35^(x.54*inv(x.55)), x.56, z.34)
-        skTe  = (x.55*inv(x.54))
-        z     = z.34
-        z.1   = z.35
-        z.2   = 'g'^(x.55*inv(x.54))
-        z.3   = z.35^(x.54*inv(x.55))
-    
-     8. certC = cert(x.53^(x.54*x.55), x.56, z.34)
-        skTe  = inv(x.54)
-        z     = z.34
-        z.1   = x.53^x.55
-        z.2   = 'g'^inv(x.54)
-        z.3   = x.53^(x.54*x.55)
-    
-     9. certC = cert(x.54^(x.55*x.56*inv(x.57)), x.58, z.35)
-        skTe  = (x.57*inv(x.56))
-        z     = z.35
-        z.1   = x.54^x.55
-        z.2   = 'g'^(x.57*inv(x.56))
-        z.3   = x.54^(x.55*x.56*inv(x.57))
-    
-    10. certC = cert(x.54^(x.55*inv((x.56*x.57))), x.58, z.35)
-        skTe  = (x.57*inv(x.55))
-        z     = z.35
-        z.1   = x.54^inv(x.56)
-        z.2   = 'g'^(x.57*inv(x.55))
-        z.3   = x.54^(x.55*inv((x.56*x.57)))
-    
-    11. certC = cert(z.54^inv(skTe.48), x.89, z.53)
-        skTe  = skTe.48
-        z     = z.53
-        z.1   = z.54
-        z.2   = 'g'^skTe.48
-        z.3   = z.54^inv(skTe.48)
-    
-    12. certC = cert(x.55^(x.56*x.57*inv((x.58*x.59))), x.60, z.36)
-        skTe  = (x.59*inv(x.57))
-        z     = z.36
-        z.1   = x.55^(x.56*inv(x.58))
-        z.2   = 'g'^(x.59*inv(x.57))
-        z.3   = x.55^(x.56*x.57*inv((x.58*x.59)))
-    
-    13. certC = cert(x.57^x.58, x.59, z.38)
-        skTe  = inv((x.58*x.64))
-        z     = z.38
-        z.1   = x.57^inv(x.64)
-        z.2   = 'g'^inv((x.58*x.64))
-        z.3   = x.57^x.58
-    
-    14. certC = cert(x.57^x.58, x.59, z.38)
-        skTe  = (x.64*inv(x.58))
-        z     = z.38
-        z.1   = x.57^x.64
-        z.2   = 'g'^(x.64*inv(x.58))
-        z.3   = x.57^x.58
-    
-    15. certC = cert(x.57^inv(x.58), x.59, z.38)
-        skTe  = inv(x.64)
-        z     = z.38
-        z.1   = x.57^inv((x.58*x.64))
-        z.2   = 'g'^inv(x.64)
-        z.3   = x.57^inv(x.58)
-    
-    16. certC = cert(x.57^inv(x.58), x.59, z.38)
-        skTe  = (x.58*x.64)
-        z     = z.38
-        z.1   = x.57^x.64
-        z.2   = 'g'^(x.58*x.64)
-        z.3   = x.57^inv(x.58)
-    
-    17. certC = cert(x.58^x.59, x.60, z.39)
-        skTe  = (x.65*inv((x.59*x.66)))
-        z     = z.39
-        z.1   = x.58^(x.65*inv(x.66))
-        z.2   = 'g'^(x.65*inv((x.59*x.66)))
-        z.3   = x.58^x.59
-    
-    18. certC = cert(x.58^inv(x.59), x.60, z.39)
-        skTe  = (x.65*inv(x.66))
-        z     = z.39
-        z.1   = x.58^(x.65*inv((x.59*x.66)))
-        z.2   = 'g'^(x.65*inv(x.66))
-        z.3   = x.58^inv(x.59)
-    
-    19. certC = cert(x.58^inv((x.59*x.60)), x.61, z.39)
-        skTe  = (x.59*x.66)
-        z     = z.39
-        z.1   = x.58^(x.66*inv(x.60))
-        z.2   = 'g'^(x.59*x.66)
-        z.3   = x.58^inv((x.59*x.60))
-    
-    20. certC = cert(x.58^inv((x.59*x.60)), x.61, z.39)
-        skTe  = (x.59*inv(x.66))
-        z     = z.39
-        z.1   = x.58^inv((x.60*x.66))
-        z.2   = 'g'^(x.59*inv(x.66))
-        z.3   = x.58^inv((x.59*x.60))
-    
-    21. certC = cert(x.58^(x.59*x.60), x.61, z.39)
-        skTe  = inv((x.59*x.66))
-        z     = z.39
-        z.1   = x.58^(x.60*inv(x.66))
-        z.2   = 'g'^inv((x.59*x.66))
-        z.3   = x.58^(x.59*x.60)
-    
-    22. certC = cert(x.58^(x.59*x.60), x.61, z.39)
-        skTe  = (x.66*inv(x.59))
-        z     = z.39
-        z.1   = x.58^(x.60*x.66)
-        z.2   = 'g'^(x.66*inv(x.59))
-        z.3   = x.58^(x.59*x.60)
-    
-    23. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = inv(x.66)
-        z     = z.39
-        z.1   = x.58^(x.59*inv((x.60*x.66)))
-        z.2   = 'g'^inv(x.66)
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    24. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = inv((x.59*x.66))
-        z     = z.39
-        z.1   = x.58^inv((x.60*x.66))
-        z.2   = 'g'^inv((x.59*x.66))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    25. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*x.66)
-        z     = z.39
-        z.1   = x.58^(x.59*x.66)
-        z.2   = 'g'^(x.60*x.66)
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    26. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*x.66*inv(x.59))
-        z     = z.39
-        z.1   = x.58^x.66
-        z.2   = 'g'^(x.60*x.66*inv(x.59))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    27. certC = cert(x.58^(x.59*inv(x.60)), x.61, z.39)
-        skTe  = (x.60*inv((x.59*x.66)))
-        z     = z.39
-        z.1   = x.58^inv(x.66)
-        z.2   = 'g'^(x.60*inv((x.59*x.66)))
-        z.3   = x.58^(x.59*inv(x.60))
-    
-    28. certC = cert(x.59^inv((x.60*x.61)), x.62, z.40)
-        skTe  = (x.60*x.67*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.60*x.67*inv(x.68))
-        z.3   = x.59^inv((x.60*x.61))
-    
-    29. certC = cert(x.59^(x.60*x.61), x.62, z.40)
-        skTe  = (x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.61*x.67*inv(x.68))
-        z.2   = 'g'^(x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*x.61)
-    
-    30. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = inv((x.61*x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*inv((x.62*x.68)))
-        z.2   = 'g'^inv((x.61*x.68))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    31. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = (x.62*x.68*inv(x.60))
-        z     = z.40
-        z.1   = x.59^(x.61*x.68)
-        z.2   = 'g'^(x.62*x.68*inv(x.60))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    32. certC = cert(x.59^(x.60*x.61*inv(x.62)), x.63, z.40)
-        skTe  = (x.62*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.61*inv(x.68))
-        z.2   = 'g'^(x.62*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*x.61*inv(x.62))
-    
-    33. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.61*x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.67*inv(x.68))
-        z.2   = 'g'^(x.61*x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    34. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.67*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.67*inv(x.68))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    35. certC = cert(x.59^(x.60*inv(x.61)), x.62, z.40)
-        skTe  = (x.67*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^(x.67*inv((x.61*x.68)))
-        z.2   = 'g'^(x.67*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv(x.61))
-    
-    36. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*x.68)
-        z     = z.40
-        z.1   = x.59^(x.60*x.68*inv(x.62))
-        z.2   = 'g'^(x.61*x.68)
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    37. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*x.68*inv(x.60))
-        z     = z.40
-        z.1   = x.59^(x.68*inv(x.62))
-        z.2   = 'g'^(x.61*x.68*inv(x.60))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    38. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*inv(x.68))
-        z     = z.40
-        z.1   = x.59^(x.60*inv((x.62*x.68)))
-        z.2   = 'g'^(x.61*inv(x.68))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    39. certC = cert(x.59^(x.60*inv((x.61*x.62))), x.63, z.40)
-        skTe  = (x.61*inv((x.60*x.68)))
-        z     = z.40
-        z.1   = x.59^inv((x.62*x.68))
-        z.2   = 'g'^(x.61*inv((x.60*x.68)))
-        z.3   = x.59^(x.60*inv((x.61*x.62)))
-    
-    40. certC = cert(x.60^(x.61*x.62*inv(x.63)), x.64, z.41)
-        skTe  = (x.63*x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*x.69*inv(x.70))
-        z.2   = 'g'^(x.63*x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv(x.63))
-    
-    41. certC = cert(x.60^(x.61*x.62*inv(x.63)), x.64, z.41)
-        skTe  = (x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv(x.63))
-    
-    42. certC = cert(x.60^(x.61*x.62*inv((x.63*x.64))), x.65, z.41)
-        skTe  = (x.63*x.70*inv(x.61))
-        z     = z.41
-        z.1   = x.60^(x.62*x.70*inv(x.64))
-        z.2   = 'g'^(x.63*x.70*inv(x.61))
-        z.3   = x.60^(x.61*x.62*inv((x.63*x.64)))
-    
-    43. certC = cert(x.60^(x.61*x.62*inv((x.63*x.64))), x.65, z.41)
-        skTe  = (x.63*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.62*inv((x.64*x.70)))
-        z.2   = 'g'^(x.63*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*x.62*inv((x.63*x.64)))
-    
-    44. certC = cert(x.60^(x.61*inv((x.62*x.63))), x.64, z.41)
-        skTe  = (x.62*x.69*inv(x.70))
-        z     = z.41
-        z.1   = x.60^(x.61*x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.62*x.69*inv(x.70))
-        z.3   = x.60^(x.61*inv((x.62*x.63)))
-    
-    45. certC = cert(x.60^(x.61*inv((x.62*x.63))), x.64, z.41)
-        skTe  = (x.62*x.69*inv((x.61*x.70)))
-        z     = z.41
-        z.1   = x.60^(x.69*inv((x.63*x.70)))
-        z.2   = 'g'^(x.62*x.69*inv((x.61*x.70)))
-        z.3   = x.60^(x.61*inv((x.62*x.63)))
-    
-    46. certC = cert(x.61^(x.62*x.63*inv((x.64*x.65))), x.66, z.42)
-        skTe  = (x.64*x.71*inv((x.62*x.72)))
-        z     = z.42
-        z.1   = x.61^(x.63*x.71*inv((x.65*x.72)))
-        z.2   = 'g'^(x.64*x.71*inv((x.62*x.72)))
-        z.3   = x.61^(x.62*x.63*inv((x.64*x.65)))
-    
-    47. certC = cert(x.87^x.88, x.89, z.53)
-        skTe  = skTe.48
-        z     = z.53
-        z.1   = x.87^(skTe.48*x.88)
-        z.2   = 'g'^skTe.48
-        z.3   = x.87^x.88
-    
-    48. certC = cert(x.88^inv((skTe.49*x.89)), x.91, z.54)
-        skTe  = skTe.49
-        z     = z.54
-        z.1   = x.88^inv(x.89)
-        z.2   = 'g'^skTe.49
-        z.3   = x.88^inv((skTe.49*x.89))
-    
-    49. certC = cert(x.88^(x.89*inv(skTe.49)), x.91, z.54)
-        skTe  = skTe.49
-        z     = z.54
-        z.1   = x.88^x.89
-        z.2   = 'g'^skTe.49
-        z.3   = x.88^(x.89*inv(skTe.49))
-    
-    50. certC = cert(x.89^(x.90*inv((skTe.50*x.91))), x.93, z.55)
-        skTe  = skTe.50
-        z     = z.55
-        z.1   = x.89^(x.90*inv(x.91))
-        z.2   = 'g'^skTe.50
-        z.3   = x.89^(x.90*inv((skTe.50*x.91)))
-  */
-
-restriction Equality:
-  "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)"
-  // safety formula
-
-lemma weak_agreement_C:
-  all-traces
-  "∀ k sid C T #i #t.
-    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
-    (((∃ k2 sid2 #j. Completed( k2, sid2, T, 'terminal', C ) @ #j) ∨
-      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
-     (∃ #k.1. Corrupted( T ) @ #k.1))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ k sid C T #i #t.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
- ∧
-  (∀ k2 sid2 #j. (Completed( k2, sid2, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
-*/
-simplify
-solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
-  case CA_INIT_T
-  solve( Completed( k, <'g'^~skTe, z.1, id_c, r2>, C, 'chip', T.1 ) @ #i )
-    case CA_FINISH_C
-    solve( CAInitC( <$C, iid>, certT, 'g'^~skTe, id_c, r1, r2 ) ▶₁ #i )
-      case CA_INIT_C
-      solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-        case Generate_static_dh
-        solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, x) ) @ #vk.37 )
-          case TA_RESPONSE_T
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, z>, ca_sk), z) ) @ #vk.17 )
-            case CA_INIT_C
-            solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.45 )
-              case TA_RESPONSE_T
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.45 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.54 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.57 )
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.44 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.55 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.58 )
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_dh
-            solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.40 )
-              case CA_Sign_ltk
-              by contradiction /* from formulas */
-            next
-              case TA_INIT_T
-              by contradiction /* from formulas */
-            next
-              case c_cert
-              solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.44 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.47 )
-              qed
-            qed
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, z>, ca_sk) ) @ #vk.44 )
-              case CA_INIT_C
-              solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.48 )
-                case TA_RESPONSE_T
-                solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.46 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.57 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.60 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.45 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.58 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.61 )
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.41 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.47 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.50 )
-                qed
-              qed
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.47 )
-            qed
-          qed
-        next
-          case c_sign
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, z>, ca_sk), z) ) @ #vk.17 )
-            case CA_INIT_C
-            solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.49 )
-              case TA_RESPONSE_T
-              solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.47 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.51 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.51 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.58 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.61 )
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.46 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.49 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.49 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.59 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.62 )
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_dh
-            solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.42 )
-              case CA_Sign_ltk
-              solve( !KU( ~ltk ) @ #vk.45 )
-                case Reveal_ltk
-                by contradiction /* from formulas */
-              qed
-            next
-              case TA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.45 )
-                case Reveal_ltk
-                by contradiction /* from formulas */
-              qed
-            next
-              case c_cert
-              solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.48 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.51 )
-              qed
-            qed
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, z>, ca_sk) ) @ #vk.48 )
-              case CA_INIT_C
-              solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.52 )
-                case TA_RESPONSE_T
-                solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.48 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.61 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.53 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.53 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.64 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.47 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.62 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.51 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.51 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.65 )
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.43 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.51 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.47 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.47 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.54 )
-                qed
-              qed
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.51 )
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma weak_agreement_T:
-  all-traces
-  "∀ k sid C T #i #t.
-    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
-    (((∃ k2 sid2 #j. Completed( k2, sid2, C, 'chip', T ) @ #j) ∨
-      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
-     (∃ #k.1. Corrupted( T ) @ #k.1))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ k sid C T #i #t.
-  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
- ∧
-  (∀ k2 sid2 #j. (Completed( k2, sid2, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
-*/
-simplify
-solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
-  case CA_INIT_T
-  solve( Completed( k, <'g'^~skTe, z.1, id_c, r2>, T.1, 'terminal', C
-         ) @ #i )
-    case CA_FINISH_T
-    solve( CAInitT( <$T, iid>, ~skTe, id_c, certC ) ▶₁ #i )
-      case CA_INIT_T
-      solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.3 )
-        case CA_FINISH_C
-        solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe>, x) ) @ #vk.37 )
-          case c_sign
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, C>, ca_sk), C) ) @ #vk.17 )
-            case CA_Sign_dh
-            solve( !KU( cert(pk(x), sign(<pk(x), z>, ca_sk), z) ) @ #vk.42 )
-              case CA_Sign_ltk
-              solve( !KU( ~ltk ) @ #vk.45 )
-                case Reveal_ltk
-                solve( !KU( ~r2 ) @ #vk.10 )
-                  case CA_FINISH_C
-                  solve( !KU( ~id_c.1 ) @ #vk.46 )
-                    case TA_CHALLENGE_C
-                    solve( !KU( ~r1 ) @ #vk.47 )
-                      case TA_CHALLENGE_C
-                      solve( !KU( 'g'^~skTe ) @ #vk.32 )
-                        case CA_INIT_T
-                        SOLVED // trace found
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma agreement_C:
-  all-traces
-  "∀ k sid C T #i #t.
-    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
-    (((∃ #j. Completed( k, sid, T, 'terminal', C ) @ #j) ∨
-      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
-     (∃ #k.1. Corrupted( T ) @ #k.1))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ k sid C T #i #t.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧ (Finished( sid ) @ #t)
- ∧
-  (∀ #j. (Completed( k, sid, T, 'terminal', C ) @ #j) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
-*/
-simplify
-solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
-  case CA_INIT_T
-  solve( Completed( k, <'g'^~skTe, z.1, id_c, r2>, C, 'chip', T.1 ) @ #i )
-    case CA_FINISH_C
-    solve( CAInitC( <$C, iid>, certT, 'g'^~skTe, id_c, r1, r2 ) ▶₁ #i )
-      case CA_INIT_C
-      solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-        case Generate_static_dh
-        solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, x) ) @ #vk.37 )
-          case TA_RESPONSE_T
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, z>, ca_sk), z) ) @ #vk.17 )
-            case CA_INIT_C
-            solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.45 )
-              case TA_RESPONSE_T
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.45 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.54 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.57 )
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.44 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.55 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.58 )
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_dh
-            solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.40 )
-              case CA_Sign_ltk
-              by contradiction /* from formulas */
-            next
-              case TA_INIT_T
-              by contradiction /* from formulas */
-            next
-              case c_cert
-              solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.44 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.47 )
-              qed
-            qed
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, z>, ca_sk) ) @ #vk.44 )
-              case CA_INIT_C
-              solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.48 )
-                case TA_RESPONSE_T
-                solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.46 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.57 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.60 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.45 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.58 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.61 )
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), T>, ca_sk), T) ) @ #vk.41 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), T>, ca_sk) ) @ #vk.47 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.50 )
-                qed
-              qed
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.47 )
-            qed
-          qed
-        next
-          case c_sign
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, z>, ca_sk), z) ) @ #vk.17 )
-            case CA_INIT_C
-            solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.49 )
-              case TA_RESPONSE_T
-              solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.47 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.51 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.51 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.58 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.61 )
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.46 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.49 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.49 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.59 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.62 )
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_dh
-            solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.42 )
-              case CA_Sign_ltk
-              solve( !KU( ~ltk ) @ #vk.45 )
-                case Reveal_ltk
-                by contradiction /* from formulas */
-              qed
-            next
-              case TA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.45 )
-                case Reveal_ltk
-                by contradiction /* from formulas */
-              qed
-            next
-              case c_cert
-              solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.48 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.51 )
-              qed
-            qed
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, z>, ca_sk) ) @ #vk.48 )
-              case CA_INIT_C
-              solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.52 )
-                case TA_RESPONSE_T
-                solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.48 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.61 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.53 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.53 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.64 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.47 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.62 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.51 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.51 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.65 )
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( cert(pk(x), sign(<pk(x), T>, ca_sk), T) ) @ #vk.43 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), T>, ca_sk) ) @ #vk.51 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.47 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.47 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.54 )
-                qed
-              qed
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.51 )
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma agreement_T:
-  all-traces
-  "∀ k sid C T #i #t.
-    ((Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
-    (((∃ #j. Completed( k, sid, C, 'chip', T ) @ #j) ∨
-      (∃ #k.1. Corrupted( C ) @ #k.1)) ∨
-     (∃ #k.1. Corrupted( T ) @ #k.1))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ k sid C T #i #t.
-  (Completed( k, sid, T, 'terminal', C ) @ #i) ∧ (Finished( sid ) @ #t)
- ∧
-  (∀ #j. (Completed( k, sid, C, 'chip', T ) @ #j) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( C ) @ #k.1) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( T ) @ #k.1) ⇒ ⊥)"
-*/
-simplify
-solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
-  case CA_INIT_T
-  solve( Completed( k, <'g'^~skTe, z.1, id_c, r2>, T.1, 'terminal', C
-         ) @ #i )
-    case CA_FINISH_T
-    solve( CAInitT( <$T, iid>, ~skTe, id_c, certC ) ▶₁ #i )
-      case CA_INIT_T
-      solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.3 )
-        case CA_FINISH_C
-        solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe>, x) ) @ #vk.37 )
-          case c_sign
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, C>, ca_sk), C) ) @ #vk.17 )
-            case CA_Sign_dh
-            solve( !KU( cert(pk(x), sign(<pk(x), z>, ca_sk), z) ) @ #vk.42 )
-              case CA_Sign_ltk
-              solve( !KU( ~ltk ) @ #vk.45 )
-                case Reveal_ltk
-                solve( !KU( ~r2 ) @ #vk.10 )
-                  case CA_FINISH_C
-                  solve( !KU( ~id_c.1 ) @ #vk.46 )
-                    case TA_CHALLENGE_C
-                    solve( !KU( ~r1 ) @ #vk.47 )
-                      case TA_CHALLENGE_C
-                      solve( !KU( 'g'^~skTe ) @ #vk.32 )
-                        case CA_INIT_T
-                        SOLVED // trace found
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma aliveness:
-  all-traces
-  "∀ k sid A role B #i #t.
-    ((Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)) ⇒
-    ((∃ k2 sid2 role2 C #j. Completed( k2, sid2, B, role2, C ) @ #j) ∨
-     (∃ #k.1. Corrupted( B ) @ #k.1))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ k sid A role B #i #t.
-  (Completed( k, sid, A, role, B ) @ #i) ∧ (Finished( sid ) @ #t)
- ∧
-  (∀ k2 sid2 role2 C #j. (Completed( k2, sid2, B, role2, C ) @ #j) ⇒ ⊥) ∧
-  (∀ #k.1. (Corrupted( B ) @ #k.1) ⇒ ⊥)"
-*/
-simplify
-solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #t )
-  case CA_INIT_T
-  solve( Completed( k, <'g'^~skTe, z.1, id_c, r2>, A, role, B ) @ #i )
-    case CA_FINISH_C
-    solve( CAInitC( <$C, iid>, certT, 'g'^~skTe, id_c, r1, r2 ) ▶₁ #i )
-      case CA_INIT_C
-      solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-        case Generate_static_dh
-        solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, x) ) @ #vk.37 )
-          case TA_RESPONSE_T
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, z>, ca_sk), z) ) @ #vk.17 )
-            case CA_INIT_C
-            solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.45 )
-              case TA_RESPONSE_T
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.45 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.54 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.57 )
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.44 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.55 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.58 )
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_dh
-            solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.40 )
-              case CA_Sign_ltk
-              by contradiction /* from formulas */
-            next
-              case TA_INIT_T
-              by contradiction /* from formulas */
-            next
-              case c_cert
-              solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.44 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.47 )
-              qed
-            qed
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, z>, ca_sk) ) @ #vk.44 )
-              case CA_INIT_C
-              solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.48 )
-                case TA_RESPONSE_T
-                solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.46 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.57 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.60 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.45 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.58 )
-                    case CA_Sign_ltk
-                    by contradiction /* from formulas */
-                  next
-                    case TA_INIT_T
-                    by contradiction /* from formulas */
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.61 )
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( cert(pk(~skT), sign(<pk(~skT), B>, ca_sk), B) ) @ #vk.41 )
-                case CA_Sign_ltk
-                by contradiction /* from formulas */
-              next
-                case TA_INIT_T
-                by contradiction /* from formulas */
-              next
-                case c_cert
-                solve( !KU( sign(<pk(~skT), B>, ca_sk) ) @ #vk.47 )
-                  case CA_Sign_ltk
-                  by contradiction /* from formulas */
-                next
-                  case TA_INIT_T
-                  by contradiction /* from formulas */
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.50 )
-                qed
-              qed
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.47 )
-            qed
-          qed
-        next
-          case c_sign
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, z>, ca_sk), z) ) @ #vk.17 )
-            case CA_INIT_C
-            solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.49 )
-              case TA_RESPONSE_T
-              solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.47 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.51 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.51 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.58 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.61 )
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.46 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.49 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.49 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.59 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.62 )
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_dh
-            solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.42 )
-              case CA_Sign_ltk
-              solve( !KU( ~ltk ) @ #vk.45 )
-                case Reveal_ltk
-                by contradiction /* from formulas */
-              qed
-            next
-              case TA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.45 )
-                case Reveal_ltk
-                by contradiction /* from formulas */
-              qed
-            next
-              case c_cert
-              solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.48 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.51 )
-              qed
-            qed
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, z>, ca_sk) ) @ #vk.48 )
-              case CA_INIT_C
-              solve( !KU( sign(<~id_c.1, ~r1.2, pkTe>, x.1) ) @ #vk.52 )
-                case TA_RESPONSE_T
-                solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.48 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.52 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.61 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.53 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.53 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.64 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.47 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.62 )
-                    case CA_Sign_ltk
-                    solve( !KU( ~ltk ) @ #vk.51 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.51 )
-                      case Reveal_ltk
-                      by contradiction /* from formulas */
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.65 )
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( cert(pk(x), sign(<pk(x), B>, ca_sk), B) ) @ #vk.43 )
-                case CA_Sign_ltk
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_ltk
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<pk(x), B>, ca_sk) ) @ #vk.51 )
-                  case CA_Sign_ltk
-                  solve( !KU( ~ltk ) @ #vk.47 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.47 )
-                    case Reveal_ltk
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.54 )
-                qed
-              qed
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.51 )
-            qed
-          qed
-        qed
-      qed
-    qed
-  next
-    case CA_FINISH_T
-    solve( CAInitT( <$T, iid>, ~skTe, id_c, certC ) ▶₁ #i )
-      case CA_INIT_T
-      solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.3 )
-        case CA_FINISH_C
-        solve( !KU( sign(<~id_c.1, ~r1.1, 'g'^~skTe>, x) ) @ #vk.37 )
-          case TA_RESPONSE_T
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.17 )
-            case CA_INIT_C
-            by contradiction /* from formulas */
-          next
-            case CA_Sign_dh
-            by contradiction /* from formulas */
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.44 )
-              case CA_INIT_C
-              by contradiction /* from formulas */
-            next
-              case CA_Sign_dh
-              by contradiction /* from formulas */
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.47 )
-            qed
-          qed
-        next
-          case c_sign
-          solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.17 )
-            case CA_INIT_C
-            by contradiction /* from formulas */
-          next
-            case CA_Sign_dh
-            by contradiction /* from formulas */
-          next
-            case c_cert
-            solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.49 )
-              case CA_INIT_C
-              by contradiction /* from formulas */
-            next
-              case CA_Sign_dh
-              by contradiction /* from formulas */
-            next
-              case c_sign
-              by solve( !KU( ca_sk ) @ #vk.52 )
-            qed
-          qed
-        qed
-      next
-        case c_mac
-        solve( !KU( cert(z.1, sign(<z.1, B>, ca_sk), B) ) @ #vk.16 )
-          case CA_INIT_C
-          solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.23 )
-            case c_kdf_mac
-            solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.26 )
-              case TA_RESPONSE_T
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.41 )
-                case CA_INIT_C
-                solve( !KU( ~skTe ) @ #vk.45 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.45 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.45 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.45 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.47 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            next
-              case c_sign
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.41 )
-                case CA_INIT_C
-                solve( !KU( ~skTe ) @ #vk.46 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.46 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.46 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.48 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            qed
-          qed
-        next
-          case CA_Sign_dh
-          solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.23 )
-            case c_kdf_mac
-            solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.25 )
-              case CA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.26 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            next
-              case CA_Sign_dh
-              solve( !KU( ~skTe ) @ #vk.26 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            next
-              case Generate_static_dh
-              solve( !KU( ~skTe ) @ #vk.26 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            next
-              case TA_INIT_T
-              solve( !KU( ~ltk ) @ #vk.26 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            next
-              case c_exp
-              solve( !KU( ~ltk ) @ #vk.28 )
-                case Reveal_dh
-                by contradiction /* from formulas */
-              qed
-            qed
-          qed
-        next
-          case CA_Sign_ltk
-          solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.23 )
-            case c_kdf_mac
-            solve( !KU( pk(~ltk)^~skTe ) @ #vk.25 )
-              case c_exp
-              solve( !KU( ~skTe ) @ #vk.27 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            qed
-          qed
-        next
-          case TA_INIT_T
-          solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.23 )
-            case c_kdf_mac
-            solve( !KU( pk(~ltk)^~skTe ) @ #vk.25 )
-              case c_exp
-              solve( !KU( ~skTe ) @ #vk.27 )
-                case Reveal_session
-                by contradiction /* cyclic */
-              qed
-            qed
-          qed
-        next
-          case c_cert
-          solve( !KU( sign(<z.1, B>, ca_sk) ) @ #vk.26 )
-            case CA_INIT_C
-            solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.24 )
-              case c_kdf_mac
-              solve( !KU( sign(<~id_c.1, ~r1.1, pkTe>, x) ) @ #vk.29 )
-                case TA_RESPONSE_T
-                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.44 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.48 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case CA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.48 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.48 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.48 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~ltk ) @ #vk.50 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.44 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.49 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case CA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.49 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.49 )
-                    case Reveal_session
-                    by contradiction /* cyclic */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~ltk ) @ #vk.49 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~ltk ) @ #vk.51 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_dh
-            solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.24 )
-              case c_kdf_mac
-              solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.28 )
-                case CA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.29 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case CA_Sign_dh
-                solve( !KU( ~skTe ) @ #vk.29 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case Generate_static_dh
-                solve( !KU( ~skTe ) @ #vk.29 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              next
-                case TA_INIT_T
-                solve( !KU( ~ltk ) @ #vk.29 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              next
-                case c_exp
-                solve( !KU( ~ltk ) @ #vk.31 )
-                  case Reveal_dh
-                  by contradiction /* from formulas */
-                qed
-              qed
-            qed
-          next
-            case CA_Sign_ltk
-            solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.24 )
-              case c_kdf_mac
-              solve( !KU( pk(~ltk)^~skTe ) @ #vk.28 )
-                case c_exp
-                solve( !KU( ~skTe ) @ #vk.29 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              qed
-            qed
-          next
-            case TA_INIT_T
-            solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.24 )
-              case c_kdf_mac
-              solve( !KU( pk(~ltk)^~skTe ) @ #vk.28 )
-                case c_exp
-                solve( !KU( ~skTe ) @ #vk.29 )
-                  case Reveal_session
-                  by contradiction /* cyclic */
-                qed
-              qed
-            qed
-          next
-            case c_sign
-            by solve( !KU( ca_sk ) @ #vk.29 )
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma session_uniqueness:
-  all-traces
-  "∀ A B k sid sid2 role #i #j.
-    ((Completed( k, sid, A, role, B ) @ #i) ∧
-     (Completed( k, sid2, A, role, B ) @ #j)) ⇒
-    ((#i = #j) ∧ (sid = sid2))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ A B k sid sid2 role #i #j.
-  (Completed( k, sid, A, role, B ) @ #i) ∧
-  (Completed( k, sid2, A, role, B ) @ #j)
- ∧
-  ((¬(#i = #j)) ∨ (¬(sid = sid2)))"
-*/
-simplify
-solve( (¬(#i = #j))  ∥ (¬(sid = sid2)) )
-  case case_1
-  solve( (#i < #j)  ∥ (#j < #i) )
-    case case_1
-    solve( Completed( k, sid, A, role, B ) @ #i )
-      case CA_FINISH_C
-      solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-        case CA_INIT_C
-        solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-          case Generate_static_dh
-          solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>, sid2, $C, 'chip', B
-                 ) @ #j )
-            case CA_FINISH_C
-            solve( CAInitC( <$C, iid.1>, certT, pkTe.1, id_c.1, r1.1, ~r2 ) ▶₁ #j )
-              case CA_INIT_C
-              by contradiction /* cyclic */
-            qed
-          qed
-        qed
-      qed
-    next
-      case CA_FINISH_T
-      solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #i )
-        case CA_INIT_T
-        solve( Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, sid2, $T, 'terminal',
-                          B
-               ) @ #j )
-          case CA_FINISH_T
-          solve( CAInitT( <$T, iid.1>, skTe.1, id_c.1, certC ) ▶₁ #j )
-            case CA_INIT_T
-            solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.4 )
-              case CA_FINISH_C
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( sign(<~id_c.2, ~r1.2, 'g'^~skTe>, x) ) @ #vk.46 )
-                  case TA_RESPONSE_T
-                  solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.54 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.62 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.64 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.65 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.70 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.65 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.70 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.65 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.70 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.67 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.68 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.40 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.73 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.63 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.65 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.66 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.71 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.66 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.71 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.66 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.71 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.68 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.69 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.38 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.74 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.52 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.54 )
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.55 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.34 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.60 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.55 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.34 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.60 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.55 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.60 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.57 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.58 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.63 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_cert
-                    solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.53 )
-                      case CA_INIT_C
-                      solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.57 )
-                        case TA_RESPONSE_T
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.65 )
-                            case c_kdf_mac
-                            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.67 )
-                              case CA_INIT_C
-                              solve( !KU( ~skTe ) @ #vk.68 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.40 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.72 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case CA_INIT_T
-                              by contradiction /* cyclic */
-                            next
-                              case Generate_static_dh
-                              solve( !KU( ~skTe ) @ #vk.68 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.40 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.72 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.68 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.72 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case c_exp
-                              solve( !KU( ~skC ) @ #vk.70 )
-                                case Reveal_dh
-                                solve( !KU( ~skTe ) @ #vk.71 )
-                                  case Reveal_session
-                                  solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                   sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                         ) @ #vk.41 )
-                                    case c_cert
-                                    solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                      case c_sign
-                                      by solve( !KU( ca_sk ) @ #vk.75 )
-                                    qed
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                          case c_mac
-                          solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.66 )
-                            case c_kdf_mac
-                            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.68 )
-                              case CA_INIT_C
-                              solve( !KU( ~skTe ) @ #vk.69 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.38 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.73 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case CA_INIT_T
-                              by contradiction /* cyclic */
-                            next
-                              case Generate_static_dh
-                              solve( !KU( ~skTe ) @ #vk.69 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.38 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.73 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.69 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.73 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case c_exp
-                              solve( !KU( ~skC ) @ #vk.71 )
-                                case Reveal_dh
-                                solve( !KU( ~skTe ) @ #vk.72 )
-                                  case Reveal_session
-                                  solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                   sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                         ) @ #vk.39 )
-                                    case c_cert
-                                    solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.74 )
-                                      case c_sign
-                                      by solve( !KU( ca_sk ) @ #vk.76 )
-                                    qed
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.55 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.57 )
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case CA_Sign_dh
-                            solve( !KU( ~skTe ) @ #vk.58 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.62 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.58 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.62 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.58 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.62 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.60 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.61 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.37 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.63 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.65 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.56 )
-                    qed
-                  qed
-                next
-                  case c_sign
-                  solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.59 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.67 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.69 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.70 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.75 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.70 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.75 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.70 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.75 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.70 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.75 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.72 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.73 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.40 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.78 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.68 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.70 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.71 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.76 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.71 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.76 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.71 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.76 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.71 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.76 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.73 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.74 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.38 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.79 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.57 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.59 )
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.65 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.60 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.34 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.65 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.60 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.34 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.65 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.65 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.62 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.63 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.68 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_cert
-                    solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.58 )
-                      case CA_INIT_C
-                      solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.62 )
-                        case TA_RESPONSE_T
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.70 )
-                            case c_kdf_mac
-                            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.72 )
-                              case CA_INIT_C
-                              solve( !KU( ~skTe ) @ #vk.73 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.40 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.77 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case CA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.73 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.77 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case Generate_static_dh
-                              solve( !KU( ~skTe ) @ #vk.73 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.40 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.77 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.73 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.77 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case c_exp
-                              solve( !KU( ~skC ) @ #vk.75 )
-                                case Reveal_dh
-                                solve( !KU( ~skTe ) @ #vk.76 )
-                                  case Reveal_session
-                                  solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                   sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                         ) @ #vk.41 )
-                                    case c_cert
-                                    solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.78 )
-                                      case c_sign
-                                      by solve( !KU( ca_sk ) @ #vk.80 )
-                                    qed
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                          case c_mac
-                          solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.71 )
-                            case c_kdf_mac
-                            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.73 )
-                              case CA_INIT_C
-                              solve( !KU( ~skTe ) @ #vk.74 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.38 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.78 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case CA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.74 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.78 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case Generate_static_dh
-                              solve( !KU( ~skTe ) @ #vk.74 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.38 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.78 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.74 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.78 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case c_exp
-                              solve( !KU( ~skC ) @ #vk.76 )
-                                case Reveal_dh
-                                solve( !KU( ~skTe ) @ #vk.77 )
-                                  case Reveal_session
-                                  solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                   sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                         ) @ #vk.39 )
-                                    case c_cert
-                                    solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.79 )
-                                      case c_sign
-                                      by solve( !KU( ca_sk ) @ #vk.81 )
-                                    qed
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.60 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.62 )
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.63 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.67 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_Sign_dh
-                            solve( !KU( ~skTe ) @ #vk.63 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.67 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.63 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.67 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.63 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.67 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.65 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.66 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.37 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.70 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.61 )
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case c_mac
-              solve( !KU( cert(z.1, sign(<z.1, B>, ca_sk), B) ) @ #vk.21 )
-                case CA_INIT_C
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                    case c_kdf_mac
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.35 )
-                      case TA_RESPONSE_T
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.54 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.54 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.60 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.54 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.54 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.60 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.56 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.57 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.55 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.35 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.61 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.55 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.35 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.61 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_dh
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                    case c_kdf_mac
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.34 )
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.35 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.33 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.41 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( ~skTe ) @ #vk.35 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.35 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.35 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.33 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.41 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.37 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.38 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_ltk
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                             ) @ #vk.30 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.37 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.40 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case TA_INIT_T
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                             ) @ #vk.30 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                               ) @ #vk.37 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.40 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<z.1, B>, ca_sk) ) @ #vk.35 )
-                  case CA_INIT_C
-                  solve( splitEqs(1) )
-                    case split_case_1
-                    by contradiction /* cyclic */
-                  next
-                    case split_case_2
-                    solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                      case c_kdf_mac
-                      solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.38 )
-                        case TA_RESPONSE_T
-                        solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.57 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.57 )
-                            case Reveal_dh
-                            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                              case c_mac
-                              solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.62 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.57 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.57 )
-                            case Reveal_dh
-                            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                              case c_mac
-                              solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.62 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~ltk ) @ #vk.59 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.60 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.58 )
-                            case Reveal_dh
-                            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                              case c_mac
-                              solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.63 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.58 )
-                            case Reveal_dh
-                            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                              case c_mac
-                              solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.63 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~ltk ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.61 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( splitEqs(1) )
-                    case split_case_1
-                    by contradiction /* cyclic */
-                  next
-                    case split_case_2
-                    solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.37 )
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.38 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                   ) @ #vk.34 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.43 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.38 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.38 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.38 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                   ) @ #vk.34 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.43 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.40 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.41 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_ltk
-                  solve( splitEqs(1) )
-                    case split_case_1
-                    by contradiction /* cyclic */
-                  next
-                    case split_case_2
-                    solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                      case c_kdf_mac
-                      solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                        case c_mac
-                        solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                         sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                               ) @ #vk.31 )
-                          case c_cert
-                          solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.40 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.42 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( splitEqs(1) )
-                    case split_case_1
-                    by contradiction /* cyclic */
-                  next
-                    case split_case_2
-                    solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                      case c_kdf_mac
-                      solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                        case c_mac
-                        solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                         sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                               ) @ #vk.31 )
-                          case c_cert
-                          solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                                 ) @ #vk.40 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.42 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.38 )
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  next
-    case case_2
-    solve( Completed( k, sid, A, role, B ) @ #i )
-      case CA_FINISH_C
-      solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-        case CA_INIT_C
-        solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-          case Generate_static_dh
-          solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>, sid2, $C, 'chip', B
-                 ) @ #j )
-            case CA_FINISH_C
-            solve( CAInitC( <$C, iid.1>, certT, pkTe.1, id_c.1, r1.1, ~r2 ) ▶₁ #j )
-              case CA_INIT_C
-              by contradiction /* cyclic */
-            qed
-          qed
-        qed
-      qed
-    next
-      case CA_FINISH_T
-      solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #i )
-        case CA_INIT_T
-        solve( Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, sid2, $T, 'terminal',
-                          B
-               ) @ #j )
-          case CA_FINISH_T
-          solve( CAInitT( <$T, iid.1>, skTe.1, id_c.1, certC ) ▶₁ #j )
-            case CA_INIT_T
-            solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.4 )
-              case CA_FINISH_C
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* cyclic */
-              next
-                case split_case_2
-                solve( !KU( sign(<~id_c.2, ~r1.2, 'g'^~skTe>, x) ) @ #vk.46 )
-                  case TA_RESPONSE_T
-                  solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.54 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.62 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.64 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.65 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.65 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.65 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.70 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.67 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.68 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.63 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.65 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.66 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.66 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.66 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.71 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.68 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.69 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.52 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.54 )
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.55 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.55 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.55 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.60 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.57 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.58 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_cert
-                    solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.53 )
-                      case CA_INIT_C
-                      solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.57 )
-                        case TA_RESPONSE_T
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.65 )
-                            case c_kdf_mac
-                            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.67 )
-                              case CA_INIT_C
-                              solve( !KU( ~skTe ) @ #vk.68 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            next
-                              case CA_INIT_T
-                              by contradiction /* cyclic */
-                            next
-                              case Generate_static_dh
-                              solve( !KU( ~skTe ) @ #vk.68 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.68 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.72 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case c_exp
-                              solve( !KU( ~skC ) @ #vk.70 )
-                                case Reveal_dh
-                                solve( !KU( ~skTe ) @ #vk.71 )
-                                  case Reveal_session
-                                  by contradiction /* cyclic */
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                          case c_mac
-                          solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.66 )
-                            case c_kdf_mac
-                            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.68 )
-                              case CA_INIT_C
-                              solve( !KU( ~skTe ) @ #vk.69 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            next
-                              case CA_INIT_T
-                              by contradiction /* cyclic */
-                            next
-                              case Generate_static_dh
-                              solve( !KU( ~skTe ) @ #vk.69 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.69 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.73 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case c_exp
-                              solve( !KU( ~skC ) @ #vk.71 )
-                                case Reveal_dh
-                                solve( !KU( ~skTe ) @ #vk.72 )
-                                  case Reveal_session
-                                  by contradiction /* cyclic */
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.55 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.57 )
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case CA_Sign_dh
-                            solve( !KU( ~skTe ) @ #vk.58 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.58 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.58 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.62 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.60 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.61 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.56 )
-                    qed
-                  qed
-                next
-                  case c_sign
-                  solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.59 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.67 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.69 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.70 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.70 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.75 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.70 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.70 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.75 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.72 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.73 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.68 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.70 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.71 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.71 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.76 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.71 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.71 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.76 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.73 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.74 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.57 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.59 )
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.65 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.60 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.60 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.65 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.62 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.63 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_cert
-                    solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.58 )
-                      case CA_INIT_C
-                      solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.62 )
-                        case TA_RESPONSE_T
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.70 )
-                            case c_kdf_mac
-                            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.72 )
-                              case CA_INIT_C
-                              solve( !KU( ~skTe ) @ #vk.73 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            next
-                              case CA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.73 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.77 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case Generate_static_dh
-                              solve( !KU( ~skTe ) @ #vk.73 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.73 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.77 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case c_exp
-                              solve( !KU( ~skC ) @ #vk.75 )
-                                case Reveal_dh
-                                solve( !KU( ~skTe ) @ #vk.76 )
-                                  case Reveal_session
-                                  by contradiction /* cyclic */
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                          case c_mac
-                          solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.71 )
-                            case c_kdf_mac
-                            solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.73 )
-                              case CA_INIT_C
-                              solve( !KU( ~skTe ) @ #vk.74 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            next
-                              case CA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.74 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.78 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case Generate_static_dh
-                              solve( !KU( ~skTe ) @ #vk.74 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            next
-                              case TA_INIT_T
-                              solve( !KU( ~skC ) @ #vk.74 )
-                                case Reveal_dh
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.78 )
-                                  qed
-                                qed
-                              qed
-                            next
-                              case c_exp
-                              solve( !KU( ~skC ) @ #vk.76 )
-                                case Reveal_dh
-                                solve( !KU( ~skTe ) @ #vk.77 )
-                                  case Reveal_session
-                                  by contradiction /* cyclic */
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.60 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.62 )
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.63 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.67 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_Sign_dh
-                            solve( !KU( ~skTe ) @ #vk.63 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.63 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.63 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.67 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.65 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.66 )
-                                case Reveal_session
-                                by contradiction /* cyclic */
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      by solve( !KU( ca_sk ) @ #vk.61 )
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case c_mac
-              solve( !KU( cert(z.1, sign(<z.1, B>, ca_sk), B) ) @ #vk.21 )
-                case CA_INIT_C
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                    case c_kdf_mac
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.35 )
-                      case TA_RESPONSE_T
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.54 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.54 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.60 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.54 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.54 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.60 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.56 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.57 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.55 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.35 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.61 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.55 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.35 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.61 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_dh
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                    case c_kdf_mac
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.34 )
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.35 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.33 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.41 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( ~skTe ) @ #vk.35 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.35 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.35 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.33 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.41 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.37 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.38 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_ltk
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                             ) @ #vk.30 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.37 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.40 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case TA_INIT_T
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* cyclic */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                             ) @ #vk.30 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                               ) @ #vk.37 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.40 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case c_cert
-                solve( !KU( sign(<z.1, B>, ca_sk) ) @ #vk.35 )
-                  case CA_INIT_C
-                  solve( splitEqs(1) )
-                    case split_case_1
-                    by contradiction /* cyclic */
-                  next
-                    case split_case_2
-                    solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                      case c_kdf_mac
-                      solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.38 )
-                        case TA_RESPONSE_T
-                        solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.57 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.57 )
-                            case Reveal_dh
-                            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                              case c_mac
-                              solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.62 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.57 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.57 )
-                            case Reveal_dh
-                            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                              case c_mac
-                              solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.62 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~ltk ) @ #vk.59 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.60 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_sign
-                        solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.58 )
-                            case Reveal_dh
-                            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                              case c_mac
-                              solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.63 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~ltk ) @ #vk.58 )
-                            case Reveal_dh
-                            solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                              case c_mac
-                              solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.36 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.63 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~ltk ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.61 )
-                              case Reveal_session
-                              by contradiction /* cyclic */
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( splitEqs(1) )
-                    case split_case_1
-                    by contradiction /* cyclic */
-                  next
-                    case split_case_2
-                    solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.37 )
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.38 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                   ) @ #vk.34 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.43 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.38 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.38 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.38 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                   ) @ #vk.34 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.43 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.40 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.41 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_ltk
-                  solve( splitEqs(1) )
-                    case split_case_1
-                    by contradiction /* cyclic */
-                  next
-                    case split_case_2
-                    solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                      case c_kdf_mac
-                      solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                        case c_mac
-                        solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                         sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                               ) @ #vk.31 )
-                          case c_cert
-                          solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.40 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.42 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( splitEqs(1) )
-                    case split_case_1
-                    by contradiction /* cyclic */
-                  next
-                    case split_case_2
-                    solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                      case c_kdf_mac
-                      solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                        case c_mac
-                        solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                         sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                               ) @ #vk.31 )
-                          case c_cert
-                          solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                                 ) @ #vk.40 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.42 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_sign
-                  by solve( !KU( ca_sk ) @ #vk.38 )
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-next
-  case case_2
-  solve( Completed( k, sid, A, role, B ) @ #i )
-    case CA_FINISH_C
-    solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-      case CA_INIT_C
-      solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-        case Generate_static_dh
-        solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>, sid2, $C, 'chip', B
-               ) @ #j )
-          case CA_FINISH_C
-          solve( CAInitC( <$C, iid.1>, certT, pkTe.1, id_c.1, r1.1, ~r2 ) ▶₁ #j )
-            case CA_INIT_C
-            by contradiction /* from formulas */
-          qed
-        qed
-      qed
-    qed
-  next
-    case CA_FINISH_T
-    solve( CAInitT( <$T, iid>, skTe, id_c, certC ) ▶₁ #i )
-      case CA_INIT_T
-      solve( Completed( <kdf_enc(z, r2), kdf_mac(z, r2)>, sid2, $T, 'terminal',
-                        B
-             ) @ #j )
-        case CA_FINISH_T
-        solve( CAInitT( <$T, iid.1>, skTe.1, id_c.1, certC ) ▶₁ #j )
-          case CA_INIT_T
-          solve( !KU( mac(kdf_mac(z, r2), 'g'^~skTe) ) @ #vk.4 )
-            case CA_FINISH_C
-            solve( splitEqs(1) )
-              case split_case_1
-              by contradiction /* from formulas */
-            next
-              case split_case_2
-              solve( !KU( sign(<~id_c.2, ~r1.2, 'g'^~skTe>, x) ) @ #vk.46 )
-                case TA_RESPONSE_T
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                  case CA_INIT_C
-                  solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.54 )
-                    case TA_RESPONSE_T
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.62 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.64 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.65 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.70 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.65 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.70 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.65 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.67 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.70 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.67 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.63 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.65 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.66 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.71 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.66 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.71 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.66 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.71 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.68 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.74 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                    case c_mac
-                    solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.52 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.54 )
-                        case CA_INIT_T
-                        by contradiction /* cyclic */
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.55 )
-                          case Reveal_session
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.55 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~skC ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.63 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.53 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.57 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.65 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.67 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.72 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.68 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.72 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.68 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.70 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.72 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.70 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.71 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.75 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.66 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.68 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            by contradiction /* cyclic */
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.69 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.69 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.71 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.73 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.71 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.72 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.74 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.76 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.55 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.57 )
-                          case CA_INIT_T
-                          by contradiction /* cyclic */
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.58 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.58 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.60 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.61 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.63 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.65 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.56 )
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( cert('g'^~skC, sign(<'g'^~skC, B>, ca_sk), B) ) @ #vk.22 )
-                  case CA_INIT_C
-                  solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.59 )
-                    case TA_RESPONSE_T
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.67 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.69 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.70 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.70 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.70 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.70 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.40 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.72 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.75 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.72 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.68 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.70 )
-                          case CA_INIT_C
-                          solve( !KU( ~skTe ) @ #vk.71 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.71 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.71 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.71 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.73 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.76 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.73 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.79 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case CA_Sign_dh
-                  solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.30 )
-                    case c_mac
-                    solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.57 )
-                      case c_kdf_mac
-                      solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.59 )
-                        case CA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case CA_Sign_dh
-                        solve( !KU( ~skTe ) @ #vk.60 )
-                          case Reveal_session
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.60 )
-                          case Reveal_session
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~skC ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.36 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.62 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.65 )
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~skC ) @ #vk.62 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.68 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                next
-                  case c_cert
-                  solve( !KU( sign(<'g'^~skC, B>, ca_sk) ) @ #vk.58 )
-                    case CA_INIT_C
-                    solve( !KU( sign(<~id_c.3, ~r1.3, pkTe>, x.1) ) @ #vk.62 )
-                      case TA_RESPONSE_T
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.33 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.70 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.72 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.73 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.73 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.40 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.73 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.41 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.75 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.77 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.75 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.76 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.41 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.78 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.80 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.71 )
-                          case c_kdf_mac
-                          solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.73 )
-                            case CA_INIT_C
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case CA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.74 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case Generate_static_dh
-                            solve( !KU( ~skTe ) @ #vk.74 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.38 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case TA_INIT_T
-                            solve( !KU( ~skC ) @ #vk.74 )
-                              case Reveal_dh
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.39 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.76 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.78 )
-                                qed
-                              qed
-                            qed
-                          next
-                            case c_exp
-                            solve( !KU( ~skC ) @ #vk.76 )
-                              case Reveal_dh
-                              solve( !KU( ~skTe ) @ #vk.77 )
-                                case Reveal_session
-                                solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                                 sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                       ) @ #vk.39 )
-                                  case c_cert
-                                  solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.79 )
-                                    case c_sign
-                                    by solve( !KU( ca_sk ) @ #vk.81 )
-                                  qed
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( mac(kdf_mac('g'^(~skC*~skTe), ~r2), 'g'^~skTe.1) ) @ #vk.31 )
-                      case c_mac
-                      solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.60 )
-                        case c_kdf_mac
-                        solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.62 )
-                          case CA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.63 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case CA_Sign_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case Generate_static_dh
-                          solve( !KU( ~skTe ) @ #vk.63 )
-                            case Reveal_session
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case TA_INIT_T
-                          solve( !KU( ~skC ) @ #vk.63 )
-                            case Reveal_dh
-                            solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.37 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.65 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.67 )
-                              qed
-                            qed
-                          qed
-                        next
-                          case c_exp
-                          solve( !KU( ~skC ) @ #vk.65 )
-                            case Reveal_dh
-                            solve( !KU( ~skTe ) @ #vk.66 )
-                              case Reveal_session
-                              solve( !KU( cert('g'^(~skC*~skTe*inv(~skTe.1)),
-                                               sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                     ) @ #vk.37 )
-                                case c_cert
-                                solve( !KU( sign(<'g'^(~skC*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.68 )
-                                  case c_sign
-                                  by solve( !KU( ca_sk ) @ #vk.70 )
-                                qed
-                              qed
-                            qed
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    by solve( !KU( ca_sk ) @ #vk.61 )
-                  qed
-                qed
-              qed
-            qed
-          next
-            case c_mac
-            solve( !KU( cert(z.1, sign(<z.1, B>, ca_sk), B) ) @ #vk.21 )
-              case CA_INIT_C
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* from formulas */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.35 )
-                    case TA_RESPONSE_T
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                      case CA_INIT_C
-                      solve( !KU( ~skTe ) @ #vk.54 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.54 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.37 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.54 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.54 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.36 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.37 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.57 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.60 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.56 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_sign
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.50 )
-                      case CA_INIT_C
-                      solve( !KU( ~skTe ) @ #vk.55 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.55 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.35 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.61 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.55 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.55 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.34 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                 ) @ #vk.35 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.58 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.61 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.57 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_dh
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* from formulas */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.34 )
-                    case CA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.35 )
-                      case Reveal_dh
-                      solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                               ) @ #vk.33 )
-                          case c_cert
-                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.41 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case CA_Sign_dh
-                    solve( !KU( ~skTe ) @ #vk.35 )
-                      case Reveal_session
-                      by contradiction /* cyclic */
-                    qed
-                  next
-                    case Generate_static_dh
-                    solve( !KU( ~skTe ) @ #vk.35 )
-                      case Reveal_session
-                      by contradiction /* cyclic */
-                    qed
-                  next
-                    case TA_INIT_T
-                    solve( !KU( ~ltk ) @ #vk.35 )
-                      case Reveal_dh
-                      solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.32 )
-                        case c_mac
-                        solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                         sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                               ) @ #vk.33 )
-                          case c_cert
-                          solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.38 )
-                            case c_sign
-                            by solve( !KU( ca_sk ) @ #vk.41 )
-                          qed
-                        qed
-                      qed
-                    qed
-                  next
-                    case c_exp
-                    solve( !KU( ~ltk ) @ #vk.37 )
-                      case Reveal_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case CA_Sign_ltk
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* from formulas */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                    case c_mac
-                    solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                     sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                           ) @ #vk.30 )
-                      case c_cert
-                      solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.37 )
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.40 )
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case TA_INIT_T
-              solve( splitEqs(1) )
-                case split_case_1
-                by contradiction /* from formulas */
-              next
-                case split_case_2
-                solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.32 )
-                  case c_kdf_mac
-                  solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.29 )
-                    case c_mac
-                    solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                     sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                           ) @ #vk.30 )
-                      case c_cert
-                      solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                             ) @ #vk.37 )
-                        case c_sign
-                        by solve( !KU( ca_sk ) @ #vk.40 )
-                      qed
-                    qed
-                  qed
-                qed
-              qed
-            next
-              case c_cert
-              solve( !KU( sign(<z.1, B>, ca_sk) ) @ #vk.35 )
-                case CA_INIT_C
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* from formulas */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( sign(<~id_c.2, ~r1.2, pkTe>, x) ) @ #vk.38 )
-                      case TA_RESPONSE_T
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.57 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.57 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.37 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.38 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.60 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.62 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.59 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.60 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_sign
-                      solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.53 )
-                        case CA_INIT_C
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case CA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.58 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.63 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case Generate_static_dh
-                        solve( !KU( ~skTe ) @ #vk.58 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      next
-                        case TA_INIT_T
-                        solve( !KU( ~ltk ) @ #vk.58 )
-                          case Reveal_dh
-                          solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.35 )
-                            case c_mac
-                            solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                             sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk), $C)
-                                   ) @ #vk.36 )
-                              case c_cert
-                              solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $C>, ca_sk) ) @ #vk.61 )
-                                case c_sign
-                                by solve( !KU( ca_sk ) @ #vk.63 )
-                              qed
-                            qed
-                          qed
-                        qed
-                      next
-                        case c_exp
-                        solve( !KU( ~ltk ) @ #vk.60 )
-                          case Reveal_dh
-                          solve( !KU( ~skTe ) @ #vk.61 )
-                            case Reveal_session
-                            by contradiction /* cyclic */
-                          qed
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_dh
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* from formulas */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac('g'^(~ltk*~skTe), r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( 'g'^(~ltk*~skTe) ) @ #vk.37 )
-                      case CA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.38 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.43 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case CA_Sign_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case Generate_static_dh
-                      solve( !KU( ~skTe ) @ #vk.38 )
-                        case Reveal_session
-                        by contradiction /* cyclic */
-                      qed
-                    next
-                      case TA_INIT_T
-                      solve( !KU( ~ltk ) @ #vk.38 )
-                        case Reveal_dh
-                        solve( !KU( mac(kdf_mac('g'^(~ltk*~skTe), r2), 'g'^~skTe.1) ) @ #vk.33 )
-                          case c_mac
-                          solve( !KU( cert('g'^(~ltk*~skTe*inv(~skTe.1)),
-                                           sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                                 ) @ #vk.34 )
-                            case c_cert
-                            solve( !KU( sign(<'g'^(~ltk*~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.41 )
-                              case c_sign
-                              by solve( !KU( ca_sk ) @ #vk.43 )
-                            qed
-                          qed
-                        qed
-                      qed
-                    next
-                      case c_exp
-                      solve( !KU( ~ltk ) @ #vk.40 )
-                        case Reveal_dh
-                        solve( !KU( ~skTe ) @ #vk.41 )
-                          case Reveal_session
-                          by contradiction /* cyclic */
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case CA_Sign_ltk
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* from formulas */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk), $A)
-                             ) @ #vk.31 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $A>, ca_sk) ) @ #vk.40 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.42 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case TA_INIT_T
-                solve( splitEqs(1) )
-                  case split_case_1
-                  by contradiction /* from formulas */
-                next
-                  case split_case_2
-                  solve( !KU( kdf_mac(pk(~ltk)^~skTe, r2) ) @ #vk.33 )
-                    case c_kdf_mac
-                    solve( !KU( mac(kdf_mac(pk(~ltk)^~skTe, r2), 'g'^~skTe.1) ) @ #vk.30 )
-                      case c_mac
-                      solve( !KU( cert(pk(~ltk)^(~skTe*inv(~skTe.1)),
-                                       sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk), $T.1)
-                             ) @ #vk.31 )
-                        case c_cert
-                        solve( !KU( sign(<pk(~ltk)^(~skTe*inv(~skTe.1)), $T.1>, ca_sk)
-                               ) @ #vk.40 )
-                          case c_sign
-                          by solve( !KU( ca_sk ) @ #vk.42 )
-                        qed
-                      qed
-                    qed
-                  qed
-                qed
-              next
-                case c_sign
-                by solve( !KU( ca_sk ) @ #vk.38 )
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma consistency:
-  all-traces
-  "∀ C T k k2 sid #i #j.
-    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-     (Completed( k2, sid, T, 'terminal', C ) @ #j)) ⇒
-    ((k = k2) ∨ (∃ #m. Corrupted( C ) @ #m))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ C T k k2 sid #i #j.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k2, sid, T, 'terminal', C ) @ #j)
- ∧
-  (¬(k = k2)) ∧ (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
-*/
-simplify
-solve( Completed( k, sid, C, 'chip', T ) @ #i )
-  case CA_FINISH_C
-  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-    case CA_INIT_C
-    solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-      case Generate_static_dh
-      solve( Completed( k2, <pkTe, 'g'^~skC, ~id_c, ~r2>, T, 'terminal', $C
-             ) @ #j )
-        case CA_FINISH_T
-        solve( CAInitT( <$T, iid.1>, skTe, ~id_c, cert('g'^~skC, x.1, $C)
-               ) ▶₁ #j )
-          case CA_INIT_T
-          by contradiction /* from formulas */
-        qed
-      qed
-    qed
-  qed
-qed
-
-lemma key_secrecy:
-  all-traces
-  "∀ C T k sid #i #j.
-    ((Completed( k, sid, C, 'chip', T ) @ #i) ∧
-     (Completed( k, sid, T, 'terminal', C ) @ #j)) ⇒
-    (((¬(∃ #m. K( k ) @ #m)) ∨ (∃ iid #m. Revealed( <T, iid> ) @ #m)) ∨
-     (∃ #m. Corrupted( C ) @ #m))"
-/*
-guarded formula characterizing all counter-examples:
-"∃ C T k sid #i #j.
-  (Completed( k, sid, C, 'chip', T ) @ #i) ∧
-  (Completed( k, sid, T, 'terminal', C ) @ #j)
- ∧
-  (∃ #m. (K( k ) @ #m)) ∧
-  (∀ iid #m. (Revealed( <T, iid> ) @ #m) ⇒ ⊥) ∧
-  (∀ #m. (Corrupted( C ) @ #m) ⇒ ⊥)"
-*/
-simplify
-solve( Completed( k, sid, C, 'chip', T ) @ #i )
-  case CA_FINISH_C
-  solve( CAInitC( <$C, iid>, certT, pkTe, id_c, r1, r2 ) ▶₁ #i )
-    case CA_INIT_C
-    solve( !LtkDH( $C, ~skC ) ▶₂ #i )
-      case Generate_static_dh
-      solve( Completed( <kdf_enc(z, ~r2), kdf_mac(z, ~r2)>,
-                        <pkTe, 'g'^~skC, ~id_c, ~r2>, T, 'terminal', $C
-             ) @ #j )
-        case CA_FINISH_T
-        solve( CAInitT( <$T, iid.1>, skTe, ~id_c, cert('g'^~skC, x.1, $C)
-               ) ▶₁ #j )
-          case CA_INIT_T
-          solve( !KU( kdf_enc('g'^(~skC*~skTe), ~r2) ) @ #vk.15 )
-            case c_kdf_enc
-            solve( !KU( kdf_mac('g'^(~skC*~skTe), ~r2) ) @ #vk.16 )
-              case c_kdf_mac
-              solve( !KU( sign(<~id_c, ~r1, 'g'^~skTe>, x) ) @ #vk.17 )
-                case TA_RESPONSE_T
-                solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.46 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.50 )
-                    case Reveal_session
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case CA_INIT_T
-                  by contradiction /* cyclic */
-                next
-                  case CA_Sign_dh
-                  solve( !KU( ~skTe ) @ #vk.47 )
-                    case Reveal_session
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.47 )
-                    case Reveal_session
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~skC ) @ #vk.47 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~skC ) @ #vk.49 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                qed
-              next
-                case c_sign
-                solve( !KU( 'g'^(~skC*~skTe) ) @ #vk.48 )
-                  case CA_INIT_C
-                  solve( !KU( ~skTe ) @ #vk.54 )
-                    case Reveal_session
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case CA_INIT_T
-                  by contradiction /* cyclic */
-                next
-                  case CA_Sign_dh
-                  solve( !KU( ~skTe ) @ #vk.51 )
-                    case Reveal_session
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case Generate_static_dh
-                  solve( !KU( ~skTe ) @ #vk.51 )
-                    case Reveal_session
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case TA_INIT_T
-                  solve( !KU( ~skC ) @ #vk.51 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                next
-                  case c_exp
-                  solve( !KU( ~skC ) @ #vk.53 )
-                    case Reveal_dh
-                    by contradiction /* from formulas */
-                  qed
-                qed
-              qed
-            qed
-          qed
-        qed
-      qed
-    qed
-  qed
-qed
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* All wellformedness checks were successful. */
-
-/*
-Generated from:
-Tamarin version 1.8.0
-Maude version 3.3.1
-Git revision: f172d7f00b1485446a1e7a42dc14623c2189cc42, branch: master
-Compiled at: 2024-01-16 15:38:46.116852601 UTC
-*/
-
-end
-
-==============================================================================
-summary of summaries:
-
-analyzed: BasicEAC.spthy
-
-  processing time: 46.12s
-  
-  weak_agreement_C (all-traces): verified (124 steps)
-  weak_agreement_T (all-traces): falsified - found trace (14 steps)
-  agreement_C (all-traces): verified (124 steps)
-  agreement_T (all-traces): falsified - found trace (14 steps)
-  aliveness (all-traces): verified (232 steps)
-  session_uniqueness (all-traces): verified (1269 steps)
-  consistency (all-traces): verified (7 steps)
-  key_secrecy (all-traces): verified (33 steps)
-
-==============================================================================
diff --git a/results/processor.45369362 b/results/processor.45369362
deleted file mode 100644
index 03663c845bf67063d17a944190d92d00da32869d..0000000000000000000000000000000000000000
--- a/results/processor.45369362
+++ /dev/null
@@ -1,20 +0,0 @@
-  *-cpu:0
-       product: Intel(R) Xeon(R) Platinum 8470Q
-       vendor: Intel Corp.
-       physical id: 2
-       bus info: cpu@0
-       version: 6.143.8
-       size: 3753MHz
-       width: 64 bits
-       capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single intel_ppin cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect avx_vnni avx512_bf16 wbnoinvd dtherm ida arat pln pts avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid bus_lock_detect cldemote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk pconfig arch_lbr amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities cpufreq
-       configuration: microcode=721421489
-  *-cpu:1
-       product: Intel(R) Xeon(R) Platinum 8470Q
-       vendor: Intel Corp.
-       physical id: 3
-       bus info: cpu@1
-       version: 6.143.8
-       size: 3764MHz
-       width: 64 bits
-       capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single intel_ppin cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect avx_vnni avx512_bf16 wbnoinvd dtherm ida arat pln pts avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid bus_lock_detect cldemote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk pconfig arch_lbr amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities cpufreq
-       configuration: microcode=721421489