I am trying to using Tamarin to prove relatively simple things, but proofs are taking a long time. (To be clear: I am trying to use the command-line interface.)
Specifically, I can currently easily prove two lemmas
lemma1: A => B
lemma2: B => C
However, Tamarin runs exponentially longer when I try to prove
lemma3: A => C
(note that I annotate Tamarin to reuse lemma1 and lemma2).
Are there some best practices for doing this? For example, would it be faster to prove
lemma3': A => B & C
? Or should I just avoid the command line entirely?
In slightly more detail, my lemmas look like this:
lemma lemma1 [reuse]:
"All A B #i.
Predicate1(A, B) @ i
==>
Ex C. Predicate2(B, C) @ i"
lemma lemma2 [reuse]:
"All B C #i.
Predicate2(B, C) @ i
==>
(Ex #j. Predicate3(B, C) @ j)
| (Ex #k. Predicate4(B) @ k)"
and I would like to prove
lemma lemma3:
"All A B #i.
Predicate1(A, B) @ i
==>
(Ex C #j. Predicate3(B, C) @ j)
| (Ex #k. Predicate4(B) @ k)"
-- 
|
| Jonathan Katz Senior Staff Research Scientist | jkcr...@google.com Safeworks -- Applied Research in Privacy, Safety, and Security Google LLC |