[STATEMENT]
lemma subst_sst_list_all:
  "list_all is_Send S \<longleftrightarrow> list_all is_Send (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_Receive S \<longleftrightarrow> list_all is_Receive (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_Equality S \<longleftrightarrow> list_all is_Equality (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_Insert S \<longleftrightarrow> list_all is_Insert (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_Delete S \<longleftrightarrow> list_all is_Delete (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_InSet S \<longleftrightarrow> list_all is_InSet (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_NegChecks S \<longleftrightarrow> list_all is_NegChecks (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_Assignment S \<longleftrightarrow> list_all is_Assignment (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_Check S \<longleftrightarrow> list_all is_Check (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_Update S \<longleftrightarrow> list_all is_Update (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
  "list_all is_Check_or_Assignment S \<longleftrightarrow> list_all is_Check_or_Assignment (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((list_all stateful_strand_step.is_Send S = list_all stateful_strand_step.is_Send (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>) &&& list_all stateful_strand_step.is_Receive S = list_all stateful_strand_step.is_Receive (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)) &&& list_all stateful_strand_step.is_Equality S = list_all stateful_strand_step.is_Equality (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>) &&& list_all is_Insert S = list_all is_Insert (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>) &&& list_all is_Delete S = list_all is_Delete (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)) &&& (list_all is_InSet S = list_all is_InSet (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>) &&& list_all is_NegChecks S = list_all is_NegChecks (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>) &&& list_all is_Assignment S = list_all is_Assignment (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)) &&& list_all is_Check S = list_all is_Check (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>) &&& list_all is_Update S = list_all is_Update (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>) &&& list_all is_Check_or_Assignment S = list_all is_Check_or_Assignment (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
proof (induction S)
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 22 subgoals...
[PROOF STEP]
case (Cons x S)
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Send S = list_all stateful_strand_step.is_Send (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all stateful_strand_step.is_Receive S = list_all stateful_strand_step.is_Receive (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all stateful_strand_step.is_Equality S = list_all stateful_strand_step.is_Equality (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all is_Insert S = list_all is_Insert (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all is_Delete S = list_all is_Delete (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all is_InSet S = list_all is_InSet (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all is_NegChecks S = list_all is_NegChecks (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all is_Assignment S = list_all is_Assignment (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all is_Check S = list_all is_Check (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all is_Update S = list_all is_Update (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
list_all is_Check_or_Assignment S = list_all is_Check_or_Assignment (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (22 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 22 subgoals...
[PROOF STEP]
note * = list_all_def subst_apply_stateful_strand_def
[PROOF STATE]
proof (state)
this:
list_all \<equiv> \<lambda>P x. Ball (set x) P
?S \<cdot>\<^sub>s\<^sub>s\<^sub>t ?\<theta> \<equiv> map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p ?\<theta>) ?S

goal (22 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 22 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all \<equiv> \<lambda>P x. Ball (set x) P
?S \<cdot>\<^sub>s\<^sub>s\<^sub>t ?\<theta> \<equiv> map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p ?\<theta>) ?S

goal (22 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 22 subgoals...
[PROOF STEP]
case 1
[PROOF STATE]
proof (state)
this:

goal (22 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 22 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all stateful_strand_step.is_Send (x # S) = list_all stateful_strand_step.is_Send (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(1)
[PROOF STATE]
proof (prove)
using this:
list_all stateful_strand_step.is_Send S = list_all stateful_strand_step.is_Send (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all stateful_strand_step.is_Send (x # S) = list_all stateful_strand_step.is_Send (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
Ball (set S) stateful_strand_step.is_Send = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S)) stateful_strand_step.is_Send

goal (1 subgoal):
 1. Ball (set (x # S)) stateful_strand_step.is_Send = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S))) stateful_strand_step.is_Send
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Send (x # S) = list_all stateful_strand_step.is_Send (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (21 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 21 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Send (x # S) = list_all stateful_strand_step.is_Send (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (21 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 21 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Send (x # S) = list_all stateful_strand_step.is_Send (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (21 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 21 subgoals...
[PROOF STEP]
case 2
[PROOF STATE]
proof (state)
this:

goal (21 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 21 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all stateful_strand_step.is_Receive (x # S) = list_all stateful_strand_step.is_Receive (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(2)
[PROOF STATE]
proof (prove)
using this:
list_all stateful_strand_step.is_Receive S = list_all stateful_strand_step.is_Receive (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all stateful_strand_step.is_Receive (x # S) = list_all stateful_strand_step.is_Receive (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
Ball (set S) stateful_strand_step.is_Receive = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S)) stateful_strand_step.is_Receive

goal (1 subgoal):
 1. Ball (set (x # S)) stateful_strand_step.is_Receive = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S))) stateful_strand_step.is_Receive
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Receive (x # S) = list_all stateful_strand_step.is_Receive (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (20 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 20 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Receive (x # S) = list_all stateful_strand_step.is_Receive (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (20 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 20 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Receive (x # S) = list_all stateful_strand_step.is_Receive (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (20 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 20 subgoals...
[PROOF STEP]
case 3
[PROOF STATE]
proof (state)
this:

goal (20 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 20 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all stateful_strand_step.is_Equality (x # S) = list_all stateful_strand_step.is_Equality (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(3)
[PROOF STATE]
proof (prove)
using this:
list_all stateful_strand_step.is_Equality S = list_all stateful_strand_step.is_Equality (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all stateful_strand_step.is_Equality (x # S) = list_all stateful_strand_step.is_Equality (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
Ball (set S) stateful_strand_step.is_Equality = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S)) stateful_strand_step.is_Equality

goal (1 subgoal):
 1. Ball (set (x # S)) stateful_strand_step.is_Equality = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S))) stateful_strand_step.is_Equality
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Equality (x # S) = list_all stateful_strand_step.is_Equality (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (19 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 19 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Equality (x # S) = list_all stateful_strand_step.is_Equality (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (19 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 19 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all stateful_strand_step.is_Equality (x # S) = list_all stateful_strand_step.is_Equality (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (19 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 19 subgoals...
[PROOF STEP]
case 4
[PROOF STATE]
proof (state)
this:

goal (19 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 19 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all is_Insert (x # S) = list_all is_Insert (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(4)
[PROOF STATE]
proof (prove)
using this:
list_all is_Insert S = list_all is_Insert (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all is_Insert (x # S) = list_all is_Insert (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
Ball (set S) is_Insert = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S)) is_Insert

goal (1 subgoal):
 1. Ball (set (x # S)) is_Insert = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S))) is_Insert
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all is_Insert (x # S) = list_all is_Insert (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (18 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 18 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all is_Insert (x # S) = list_all is_Insert (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (18 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 18 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all is_Insert (x # S) = list_all is_Insert (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (18 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 18 subgoals...
[PROOF STEP]
case 5
[PROOF STATE]
proof (state)
this:

goal (18 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 18 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all is_Delete (x # S) = list_all is_Delete (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(5)
[PROOF STATE]
proof (prove)
using this:
list_all is_Delete S = list_all is_Delete (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all is_Delete (x # S) = list_all is_Delete (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
Ball (set S) is_Delete = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S)) is_Delete

goal (1 subgoal):
 1. Ball (set (x # S)) is_Delete = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S))) is_Delete
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all is_Delete (x # S) = list_all is_Delete (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (17 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 17 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all is_Delete (x # S) = list_all is_Delete (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (17 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 17 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all is_Delete (x # S) = list_all is_Delete (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (17 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 17 subgoals...
[PROOF STEP]
case 6
[PROOF STATE]
proof (state)
this:

goal (17 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 17 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all is_InSet (x # S) = list_all is_InSet (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(6)
[PROOF STATE]
proof (prove)
using this:
list_all is_InSet S = list_all is_InSet (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all is_InSet (x # S) = list_all is_InSet (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
Ball (set S) is_InSet = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S)) is_InSet

goal (1 subgoal):
 1. Ball (set (x # S)) is_InSet = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S))) is_InSet
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all is_InSet (x # S) = list_all is_InSet (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (16 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 16 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all is_InSet (x # S) = list_all is_InSet (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (16 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 16 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all is_InSet (x # S) = list_all is_InSet (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (16 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 16 subgoals...
[PROOF STEP]
case 7
[PROOF STATE]
proof (state)
this:

goal (16 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 16 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all is_NegChecks (x # S) = list_all is_NegChecks (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(7)
[PROOF STATE]
proof (prove)
using this:
list_all is_NegChecks S = list_all is_NegChecks (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all is_NegChecks (x # S) = list_all is_NegChecks (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
Ball (set S) is_NegChecks = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S)) is_NegChecks

goal (1 subgoal):
 1. Ball (set (x # S)) is_NegChecks = Ball (set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S))) is_NegChecks
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all is_NegChecks (x # S) = list_all is_NegChecks (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (15 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 15 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all is_NegChecks (x # S) = list_all is_NegChecks (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (15 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 15 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all is_NegChecks (x # S) = list_all is_NegChecks (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (15 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 15 subgoals...
[PROOF STEP]
case 8
[PROOF STATE]
proof (state)
this:

goal (15 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 15 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all is_Assignment (x # S) = list_all is_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(8)
[PROOF STATE]
proof (prove)
using this:
list_all is_Assignment S = list_all is_Assignment (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all is_Assignment (x # S) = list_all is_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
(\<forall>x\<in>set S. is_Assignment x) = (\<forall>x\<in>set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S). is_Assignment x)

goal (1 subgoal):
 1. (\<forall>x\<in>set (x # S). is_Assignment x) = (\<forall>x\<in>set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S)). is_Assignment x)
[PROOF STEP]
by (cases x) fastforce+
[PROOF STATE]
proof (state)
this:
list_all is_Assignment (x # S) = list_all is_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (14 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 14 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all is_Assignment (x # S) = list_all is_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (14 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 14 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all is_Assignment (x # S) = list_all is_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (14 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 14 subgoals...
[PROOF STEP]
case 9
[PROOF STATE]
proof (state)
this:

goal (14 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 14 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all is_Check (x # S) = list_all is_Check (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(9)
[PROOF STATE]
proof (prove)
using this:
list_all is_Check S = list_all is_Check (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all is_Check (x # S) = list_all is_Check (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
(\<forall>x\<in>set S. is_Check x) = (\<forall>x\<in>set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S). is_Check x)

goal (1 subgoal):
 1. (\<forall>x\<in>set (x # S). is_Check x) = (\<forall>x\<in>set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S)). is_Check x)
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all is_Check (x # S) = list_all is_Check (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (13 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 13 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all is_Check (x # S) = list_all is_Check (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (13 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 13 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all is_Check (x # S) = list_all is_Check (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (13 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 13 subgoals...
[PROOF STEP]
case 10
[PROOF STATE]
proof (state)
this:

goal (13 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 13 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all is_Update (x # S) = list_all is_Update (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(10)
[PROOF STATE]
proof (prove)
using this:
list_all is_Update S = list_all is_Update (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all is_Update (x # S) = list_all is_Update (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
(\<forall>x\<in>set S. is_Update x) = (\<forall>x\<in>set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S). is_Update x)

goal (1 subgoal):
 1. (\<forall>x\<in>set (x # S). is_Update x) = (\<forall>x\<in>set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S)). is_Update x)
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all is_Update (x # S) = list_all is_Update (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (12 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 12 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all is_Update (x # S) = list_all is_Update (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (12 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 12 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
list_all is_Update (x # S) = list_all is_Update (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (12 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 12 subgoals...
[PROOF STEP]
case 11
[PROOF STATE]
proof (state)
this:

goal (12 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 12 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all is_Check_or_Assignment (x # S) = list_all is_Check_or_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
using Cons.IH(11)
[PROOF STATE]
proof (prove)
using this:
list_all is_Check_or_Assignment S = list_all is_Check_or_Assignment (S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (1 subgoal):
 1. list_all is_Check_or_Assignment (x # S) = list_all is_Check_or_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
[PROOF STEP]
unfolding *
[PROOF STATE]
proof (prove)
using this:
(\<forall>x\<in>set S. is_Check_or_Assignment x) = (\<forall>x\<in>set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) S). is_Check_or_Assignment x)

goal (1 subgoal):
 1. (\<forall>x\<in>set (x # S). is_Check_or_Assignment x) = (\<forall>x\<in>set (map (\<lambda>x. x \<cdot>\<^sub>s\<^sub>s\<^sub>t\<^sub>p \<delta>) (x # S)). is_Check_or_Assignment x)
[PROOF STEP]
by (cases x) auto
[PROOF STATE]
proof (state)
this:
list_all is_Check_or_Assignment (x # S) = list_all is_Check_or_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (11 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 11 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
list_all is_Check_or_Assignment (x # S) = list_all is_Check_or_Assignment (x # S \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)

goal (11 subgoals):
 1. list_all stateful_strand_step.is_Send [] = list_all stateful_strand_step.is_Send ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 2. list_all stateful_strand_step.is_Receive [] = list_all stateful_strand_step.is_Receive ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 3. list_all stateful_strand_step.is_Equality [] = list_all stateful_strand_step.is_Equality ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 4. list_all is_Insert [] = list_all is_Insert ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 5. list_all is_Delete [] = list_all is_Delete ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 6. list_all is_InSet [] = list_all is_InSet ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 7. list_all is_NegChecks [] = list_all is_NegChecks ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 8. list_all is_Assignment [] = list_all is_Assignment ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 9. list_all is_Check [] = list_all is_Check ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
 10. list_all is_Update [] = list_all is_Update ([] \<cdot>\<^sub>s\<^sub>s\<^sub>t \<delta>)
A total of 11 subgoals...
[PROOF STEP]
qed simp_all