Step
*
2
2
1
1
2
of Lemma
ses-is-protocol-actions-fresh
1. s : SES@i'
2. ActionsDisjoint@i'
3. pas : ProtocolAction List@i
4. es : EO+(Info)@i'
5. thr : {thr:Act List| ∀i:ℕ||thr|| - 1. (thr[i] <loc thr[i + 1])} @i
6. A : Id@i
7. ||thr|| = ||pas|| ∈ ℤ@i
8. ∀i:ℕ||pas||. pas[i](thr[i])@i
9. f : SecurityData ─→ (Atom1?)@i
10. i : ℕ||thr||@i
11. ↑thr[i] ∈b Sign@i
12. (fst(snd(snd(pas[i])))) = A ∈ Id
13. j : ℕi
14. (fst(pas[j])) = "new" ∈ Atom
15. ↑isl(f (fst(snd(pas[i]))))
16. outl(f (fst(snd(pas[i])))) = (snd(pas[j])) ∈ Atom1
17. ∀k:{j + 1..i-}
      (((fst(pas[k])) = "sign" ∈ Atom)
      
⇒ (↑isl(f (fst(snd(pas[k])))))
      
⇒ (¬(outl(f (fst(snd(pas[k])))) = (snd(pas[j])) ∈ Atom1)))
18. signer(thr[i]) = A ∈ Id
19. (↑thr[j] ∈b New) ∧ (New(thr[j]) = (snd(pas[j])) ∈ Atom1)
⊢ (↑isl(f signed(thr[i])))
∧ (outl(f signed(thr[i])) = New(thr[j]) ∈ Atom1)
∧ (∀k:{j + 1..i-}. ((↑thr[k] ∈b Sign) 
⇒ (↑isl(f signed(thr[k]))) 
⇒ (¬(outl(f signed(thr[k])) = New(thr[j]) ∈ Atom1))))
BY
{ ((Assert pas[i](thr[i]) BY Auto⋅) THEN (FLemma `ses-sign-is-protocol-action` [-1] THENA Auto))⋅ }
1
1. s : SES@i'
2. ActionsDisjoint@i'
3. pas : ProtocolAction List@i
4. es : EO+(Info)@i'
5. thr : {thr:Act List| ∀i:ℕ||thr|| - 1. (thr[i] <loc thr[i + 1])} @i
6. A : Id@i
7. ||thr|| = ||pas|| ∈ ℤ@i
8. ∀i:ℕ||pas||. pas[i](thr[i])@i
9. f : SecurityData ─→ (Atom1?)@i
10. i : ℕ||thr||@i
11. ↑thr[i] ∈b Sign@i
12. (fst(snd(snd(pas[i])))) = A ∈ Id
13. j : ℕi
14. (fst(pas[j])) = "new" ∈ Atom
15. ↑isl(f (fst(snd(pas[i]))))
16. outl(f (fst(snd(pas[i])))) = (snd(pas[j])) ∈ Atom1
17. ∀k:{j + 1..i-}
      (((fst(pas[k])) = "sign" ∈ Atom)
      
⇒ (↑isl(f (fst(snd(pas[k])))))
      
⇒ (¬(outl(f (fst(snd(pas[k])))) = (snd(pas[j])) ∈ Atom1)))
18. signer(thr[i]) = A ∈ Id
19. (↑thr[j] ∈b New) ∧ (New(thr[j]) = (snd(pas[j])) ∈ Atom1)
20. pas[i](thr[i])
21. ((fst(pas[i])) = "sign" ∈ Atom) ∧ ((snd(pas[i])) = Sign(thr[i]) ∈ (SecurityData × Id × Atom1))
⊢ (↑isl(f signed(thr[i])))
∧ (outl(f signed(thr[i])) = New(thr[j]) ∈ Atom1)
∧ (∀k:{j + 1..i-}. ((↑thr[k] ∈b Sign) 
⇒ (↑isl(f signed(thr[k]))) 
⇒ (¬(outl(f signed(thr[k])) = New(thr[j]) ∈ Atom1))))
Latex:
Latex:
1.  s  :  SES@i'
2.  ActionsDisjoint@i'
3.  pas  :  ProtocolAction  List@i
4.  es  :  EO+(Info)@i'
5.  thr  :  \{thr:Act  List|  \mforall{}i:\mBbbN{}||thr||  -  1.  (thr[i]  <loc  thr[i  +  1])\}  @i
6.  A  :  Id@i
7.  ||thr||  =  ||pas||@i
8.  \mforall{}i:\mBbbN{}||pas||.  pas[i](thr[i])@i
9.  f  :  SecurityData  {}\mrightarrow{}  (Atom1?)@i
10.  i  :  \mBbbN{}||thr||@i
11.  \muparrow{}thr[i]  \mmember{}\msubb{}  Sign@i
12.  (fst(snd(snd(pas[i]))))  =  A
13.  j  :  \mBbbN{}i
14.  (fst(pas[j]))  =  "new"
15.  \muparrow{}isl(f  (fst(snd(pas[i]))))
16.  outl(f  (fst(snd(pas[i]))))  =  (snd(pas[j]))
17.  \mforall{}k:\{j  +  1..i\msupminus{}\}
            (((fst(pas[k]))  =  "sign")
            {}\mRightarrow{}  (\muparrow{}isl(f  (fst(snd(pas[k])))))
            {}\mRightarrow{}  (\mneg{}(outl(f  (fst(snd(pas[k]))))  =  (snd(pas[j])))))
18.  signer(thr[i])  =  A
19.  (\muparrow{}thr[j]  \mmember{}\msubb{}  New)  \mwedge{}  (New(thr[j])  =  (snd(pas[j])))
\mvdash{}  (\muparrow{}isl(f  signed(thr[i])))
\mwedge{}  (outl(f  signed(thr[i]))  =  New(thr[j]))
\mwedge{}  (\mforall{}k:\{j  +  1..i\msupminus{}\}
          ((\muparrow{}thr[k]  \mmember{}\msubb{}  Sign)  {}\mRightarrow{}  (\muparrow{}isl(f  signed(thr[k])))  {}\mRightarrow{}  (\mneg{}(outl(f  signed(thr[k]))  =  New(thr[j])))))
By
Latex:
((Assert  pas[i](thr[i])  BY  Auto\mcdot{})  THEN  (FLemma  `ses-sign-is-protocol-action`  [-1]  THENA  Auto))\mcdot{}
Home
Index