I am trying to prove that in a trace of a protocol run a message will not be in an empty trace. The eventual goal is to prove that no host will send a message to itself. This seems intuitively simple so I'm not actually sure what is happening. The error I receive is
Failed to apply initial proof method⌂:
using this:
[] ∈ ns_public
goal (1 subgoal):
1. ∀A B X. Says A B X ∉ set_of_list []
Here is the code in question.
inductive_set ns_public :: "event list set"
where
Nil[intro!,simp] : "[] ∈ ns_public" |
....
<snip>
....
lemma "∀ A B X. [] ∈ ns_public ⟶ Says A B X ∉ set_of_list []"
proof
assume "[] ∈ ns_public"
from this have "∀ A B X. Says A B X ∉ set_of_list []"
from this show "True" by blast
oops