[STATEMENT]
theorem Sat_sound:
  "Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
[PROOF STEP]
proof (induct F rule: Sat.induct)
[PROOF STATE]
proof (state)
goal (10 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Prob rel r (X F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))
 6. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 7. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 8. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 9. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 10. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
case (5 rel r F)
[PROOF STATE]
proof (state)
this:
Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
Sat (Prob rel r (X F)) \<noteq> None

goal (10 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Prob rel r (X F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))
 6. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 7. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 8. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 9. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 10. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
Sat (Prob rel r (X F)) \<noteq> None

goal (10 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Prob rel r (X F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))
 6. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 7. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 8. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 9. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 10. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
fix q
[PROOF STATE]
proof (state)
goal (10 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Prob rel r (X F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))
 6. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 7. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 8. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 9. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 10. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
assume "q \<in> S"
[PROOF STATE]
proof (state)
this:
q \<in> S

goal (10 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Prob rel r (X F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))
 6. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 7. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 8. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 9. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 10. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
with svalid_subset_S
[PROOF STATE]
proof (chain)
picking this:
svalid ?F \<subseteq> S
q \<in> S
[PROOF STEP]
have "sum (\<tau> q) (svalid F) = \<P>(\<omega> in T q. HLD (svalid F) \<omega>)"
[PROOF STATE]
proof (prove)
using this:
svalid ?F \<subseteq> S
q \<in> S

goal (1 subgoal):
 1. sum (\<tau> q) (svalid F) = prob q (HLD (svalid F))
[PROOF STEP]
by (subst prob_sum[OF \<open>q\<in>S\<close>]) (auto intro!: sum.mono_neutral_cong_left)
[PROOF STATE]
proof (state)
this:
sum (\<tau> q) (svalid F) = prob q (HLD (svalid F))

goal (10 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Prob rel r (X F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))
 6. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 7. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 8. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 9. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 10. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?q3 \<in> S \<Longrightarrow> sum (\<tau> ?q3) (svalid F) = prob ?q3 (HLD (svalid F))

goal (10 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Prob rel r (X F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))
 6. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 7. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 8. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 9. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 10. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
with 5
[PROOF STATE]
proof (chain)
picking this:
Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
Sat (Prob rel r (X F)) \<noteq> None
?q3 \<in> S \<Longrightarrow> sum (\<tau> ?q3) (svalid F) = prob ?q3 (HLD (svalid F))
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
Sat (Prob rel r (X F)) \<noteq> None
?q3 \<in> S \<Longrightarrow> sum (\<tau> ?q3) (svalid F) = prob ?q3 (HLD (svalid F))

goal (1 subgoal):
 1. Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))
[PROOF STEP]
by (auto split: bind_split_asm)
[PROOF STATE]
proof (state)
this:
Sat (Prob rel r (X F)) = Some (svalid (Prob rel r (X F)))

goal (9 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 6. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 7. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 8. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 9. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (9 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 6. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 7. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 8. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 9. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
case (6 rel r k F1 F2)
[PROOF STATE]
proof (state)
this:
Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1)
\<lbrakk>Sat F1 = Some ?a1; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2)
Sat (Prob rel r (U k F1 F2)) \<noteq> None

goal (9 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U k F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
 6. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 7. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 8. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 9. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1)
\<lbrakk>Sat F1 = Some ?a1; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2)
Sat (Prob rel r (U k F1 F2)) \<noteq> None
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1)
\<lbrakk>Sat F1 = Some ?a1; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2)
Sat (Prob rel r (U k F1 F2)) \<noteq> None

goal (1 subgoal):
 1. Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))
[PROOF STEP]
by (simp add: ProbU cong: conj_cong split: bind_split_asm)
[PROOF STATE]
proof (state)
this:
Sat (Prob rel r (U k F1 F2)) = Some (svalid (Prob rel r (U k F1 F2)))

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
case (7 rel r F1 F2)
[PROOF STATE]
proof (state)
this:
Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1)
\<lbrakk>Sat F1 = Some ?a1; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2)
Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1)
\<lbrakk>Sat F1 = Some ?a1; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2)
Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
define constants :: "'s \<Rightarrow> real" where "constants = (\<lambda>s. if s \<in> (svalid F2) then 1 else 0)"
[PROOF STATE]
proof (state)
this:
constants = (\<lambda>s. if s \<in> svalid F2 then 1 else 0)

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
constants = (\<lambda>s. if s \<in> svalid F2 then 1 else 0)

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
define distr where "distr = LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2)"
[PROOF STATE]
proof (state)
this:
distr = LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2)

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1)
\<lbrakk>Sat F1 = Some ?a1; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2)
Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None
constants = (\<lambda>s. if s \<in> svalid F2 then 1 else 0)
distr = LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2)
[PROOF STEP]
obtain l where eq: "Sat F1 = Some (svalid F1)" "Sat F2 = Some (svalid F2)"
    and l: "gauss_jordan' distr constants = Some l"
[PROOF STATE]
proof (prove)
using this:
Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1)
\<lbrakk>Sat F1 = Some ?a1; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2)
Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None
constants = (\<lambda>s. if s \<in> svalid F2 then 1 else 0)
distr = LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2)

goal (1 subgoal):
 1. (\<And>l. \<lbrakk>Sat F1 = Some (svalid F1); Sat F2 = Some (svalid F2); gauss_jordan' distr constants = Some l\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by atomize_elim (simp add: ProbUinfty_def split: bind_split_asm)
[PROOF STATE]
proof (state)
this:
Sat F1 = Some (svalid F1)
Sat F2 = Some (svalid F2)
gauss_jordan' distr constants = Some l

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
from l
[PROOF STATE]
proof (chain)
picking this:
gauss_jordan' distr constants = Some l
[PROOF STEP]
have P: "ProbUinfty (svalid F1) (svalid F2) = Some l"
[PROOF STATE]
proof (prove)
using this:
gauss_jordan' distr constants = Some l

goal (1 subgoal):
 1. ProbUinfty (svalid F1) (svalid F2) = Some l
[PROOF STEP]
unfolding ProbUinfty_def constants_def distr_def
[PROOF STATE]
proof (prove)
using this:
gauss_jordan' (LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2)) (\<lambda>s. if s \<in> svalid F2 then 1 else 0) = Some l

goal (1 subgoal):
 1. gauss_jordan' (LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2)) (\<lambda>i. if i \<in> svalid F2 then 1 else 0) = Some l
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
ProbUinfty (svalid F1) (svalid F2) = Some l

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
have "\<forall>s\<in>S. l s = \<P>(\<omega> in T s. pvalid (U\<^sup>\<infinity> F1 F2) (s ## \<omega>))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>s\<in>S. l s = prob s (\<lambda>\<omega>. pvalid (U\<^sup>\<infinity> F1 F2) (s ## \<omega>))
[PROOF STEP]
proof (rule uniqueness_of_ProbU)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<forall>s\<in>S. (\<Sum>s'\<in>S. LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2) s s' * l s') = (if s \<in> svalid F2 then 1 else 0)
[PROOF STEP]
show "\<forall>s\<in>S. (\<Sum>s'\<in>S. LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2) s s' * l s') =
                   (if s \<in> svalid F2 then 1 else 0)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>s\<in>S. (\<Sum>s'\<in>S. LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2) s s' * l s') = (if s \<in> svalid F2 then 1 else 0)
[PROOF STEP]
using gauss_jordan'_correct[OF l]
[PROOF STATE]
proof (prove)
using this:
\<forall>s\<in>S. (\<Sum>s'\<in>S. distr s s' * l s') = constants s

goal (1 subgoal):
 1. \<forall>s\<in>S. (\<Sum>s'\<in>S. LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2) s s' * l s') = (if s \<in> svalid F2 then 1 else 0)
[PROOF STEP]
unfolding distr_def constants_def
[PROOF STATE]
proof (prove)
using this:
\<forall>s\<in>S. (\<Sum>s'\<in>S. LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2) s s' * l s') = (if s \<in> svalid F2 then 1 else 0)

goal (1 subgoal):
 1. \<forall>s\<in>S. (\<Sum>s'\<in>S. LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2) s s' * l s') = (if s \<in> svalid F2 then 1 else 0)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>s\<in>S. (\<Sum>s'\<in>S. LES (Prob0 (svalid F1) (svalid F2) \<union> svalid F2) s s' * l s') = (if s \<in> svalid F2 then 1 else 0)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<forall>s\<in>S. l s = prob s (\<lambda>\<omega>. pvalid (U\<^sup>\<infinity> F1 F2) (s ## \<omega>))

goal (8 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
 6. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 7. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 8. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>s\<in>S. l s = prob s (\<lambda>\<omega>. pvalid (U\<^sup>\<infinity> F1 F2) (s ## \<omega>))
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<forall>s\<in>S. l s = prob s (\<lambda>\<omega>. pvalid (U\<^sup>\<infinity> F1 F2) (s ## \<omega>))

goal (1 subgoal):
 1. Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))
[PROOF STEP]
by (auto simp add: eq P)
[PROOF STATE]
proof (state)
this:
Sat (Prob rel r (U\<^sup>\<infinity> F1 F2)) = Some (svalid (Prob rel r (U\<^sup>\<infinity> F1 F2)))

goal (7 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 6. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 7. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 6. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 7. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
case (8 rel r k)
[PROOF STATE]
proof (state)
this:
Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None

goal (7 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 6. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 7. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None

goal (7 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 6. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 7. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
fix s
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 6. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 7. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
assume "s \<in> S"
[PROOF STATE]
proof (state)
this:
s \<in> S

goal (7 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 6. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 7. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s \<in> S
[PROOF STEP]
have "ExpCumm s k = (\<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s)"
[PROOF STATE]
proof (prove)
using this:
s \<in> S

goal (1 subgoal):
 1. ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
proof (induct k arbitrary: s)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s. s \<in> S \<Longrightarrow> ExpCumm s 0 = \<integral>\<^sup>+ x. ennreal (\<Sum>i<0. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
 2. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
case 0
[PROOF STATE]
proof (state)
this:
s \<in> S

goal (2 subgoals):
 1. \<And>s. s \<in> S \<Longrightarrow> ExpCumm s 0 = \<integral>\<^sup>+ x. ennreal (\<Sum>i<0. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
 2. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s \<in> S
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
s \<in> S

goal (1 subgoal):
 1. ExpCumm s 0 = \<integral>\<^sup>+ x. ennreal (\<Sum>i<0. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
ExpCumm s 0 = \<integral>\<^sup>+ x. ennreal (\<Sum>i<0. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
case (Suc k)
[PROOF STATE]
proof (state)
this:
?s1 \<in> S \<Longrightarrow> ExpCumm ?s1 k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((?s1 ## x) !! i) + \<iota> ((?s1 ## x) !! i) (x !! i)) \<partial>T ?s1
s \<in> S

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
have "(\<integral>\<^sup>+\<omega>. ennreal (\<Sum>i<Suc k. \<rho> ((s ## \<omega>) !! i) + \<iota> ((s ## \<omega>) !! i) (\<omega> !! i)) \<partial>T s)
        = (\<integral>\<^sup>+\<omega>. ennreal (\<rho> s + \<iota> s (\<omega> !! 0)) + ennreal (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! (Suc i))) \<partial>T s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<integral>\<^sup>+ \<omega>. ennreal (\<Sum>i<Suc k. \<rho> ((s ## \<omega>) !! i) + \<iota> ((s ## \<omega>) !! i) (\<omega> !! i)) \<partial>T s = \<integral>\<^sup>+ \<omega>. ennreal (\<rho> s + \<iota> s (\<omega> !! 0)) + ennreal (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! Suc i)) \<partial>T s
[PROOF STEP]
by (auto intro!: nn_integral_cong
                 simp del: ennreal_plus
                 simp: ennreal_plus[symmetric] sum_nonneg sum.reindex lessThan_Suc_eq_insert_0 zero_notin_Suc_image)
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ \<omega>. ennreal (\<Sum>i<Suc k. \<rho> ((s ## \<omega>) !! i) + \<iota> ((s ## \<omega>) !! i) (\<omega> !! i)) \<partial>T s = \<integral>\<^sup>+ \<omega>. ennreal (\<rho> s + \<iota> s (\<omega> !! 0)) + ennreal (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! Suc i)) \<partial>T s

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ \<omega>. ennreal (\<Sum>i<Suc k. \<rho> ((s ## \<omega>) !! i) + \<iota> ((s ## \<omega>) !! i) (\<omega> !! i)) \<partial>T s = \<integral>\<^sup>+ \<omega>. ennreal (\<rho> s + \<iota> s (\<omega> !! 0)) + ennreal (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! Suc i)) \<partial>T s

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
have "\<dots> = (\<integral>\<^sup>+\<omega>. \<rho> s + \<iota> s (\<omega> !! 0) \<partial>T s) +
          (\<integral>\<^sup>+\<omega>. (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! (Suc i))) \<partial>T s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<integral>\<^sup>+ \<omega>. ennreal (\<rho> s + \<iota> s (\<omega> !! 0)) + ennreal (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! Suc i)) \<partial>T s = \<integral>\<^sup>+ x. ennreal (\<rho> s + \<iota> s (x !! 0)) \<partial>T s + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s
[PROOF STEP]
using \<open>s \<in> S\<close>
[PROOF STATE]
proof (prove)
using this:
s \<in> S

goal (1 subgoal):
 1. \<integral>\<^sup>+ \<omega>. ennreal (\<rho> s + \<iota> s (\<omega> !! 0)) + ennreal (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! Suc i)) \<partial>T s = \<integral>\<^sup>+ x. ennreal (\<rho> s + \<iota> s (x !! 0)) \<partial>T s + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s
[PROOF STEP]
by (intro nn_integral_add AE_I2) (auto simp: sum_nonneg)
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ \<omega>. ennreal (\<rho> s + \<iota> s (\<omega> !! 0)) + ennreal (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! Suc i)) \<partial>T s = \<integral>\<^sup>+ x. ennreal (\<rho> s + \<iota> s (x !! 0)) \<partial>T s + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ \<omega>. ennreal (\<rho> s + \<iota> s (\<omega> !! 0)) + ennreal (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! Suc i)) \<partial>T s = \<integral>\<^sup>+ x. ennreal (\<rho> s + \<iota> s (x !! 0)) \<partial>T s + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
have "\<dots> = (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) +
        (\<integral>\<^sup>+\<omega>. (\<Sum>i<k. \<rho> (\<omega> !! i) + \<iota> (\<omega> !! i) (\<omega> !! (Suc i))) \<partial>T s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<integral>\<^sup>+ x. ennreal (\<rho> s + \<iota> s (x !! 0)) \<partial>T s + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s = ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s
[PROOF STEP]
using \<open>s \<in> S\<close>
[PROOF STATE]
proof (prove)
using this:
s \<in> S

goal (1 subgoal):
 1. \<integral>\<^sup>+ x. ennreal (\<rho> s + \<iota> s (x !! 0)) \<partial>T s + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s = ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s
[PROOF STEP]
by (subst nn_integral_eq_sum)
          (auto simp del: ennreal_plus simp: ennreal_plus[symmetric] ennreal_mult[symmetric] sum_nonneg)
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ x. ennreal (\<rho> s + \<iota> s (x !! 0)) \<partial>T s + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s = ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ x. ennreal (\<rho> s + \<iota> s (x !! 0)) \<partial>T s + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s = ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
have "\<dots> = (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) +
        (\<Sum>s'\<in>S. \<tau> s s' * ExpCumm s' k)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s = ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + (\<Sum>s'\<in>S. ennreal (\<tau> s s') * ExpCumm s' k)
[PROOF STEP]
using \<open>s \<in> S\<close>
[PROOF STATE]
proof (prove)
using this:
s \<in> S

goal (1 subgoal):
 1. ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s = ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + (\<Sum>s'\<in>S. ennreal (\<tau> s s') * ExpCumm s' k)
[PROOF STEP]
by (subst nn_integral_eq_sum) (auto simp: Suc)
[PROOF STATE]
proof (state)
this:
ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s = ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + (\<Sum>s'\<in>S. ennreal (\<tau> s s') * ExpCumm s' k)

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> (x !! i) + \<iota> (x !! i) (x !! Suc i)) \<partial>T s = ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + (\<Sum>s'\<in>S. ennreal (\<tau> s s') * ExpCumm s' k)

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
have "\<dots> = ExpCumm s (Suc k)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + (\<Sum>s'\<in>S. ennreal (\<tau> s s') * ExpCumm s' k) = ExpCumm s (Suc k)
[PROOF STEP]
using \<open>s \<in> S\<close>
[PROOF STATE]
proof (prove)
using this:
s \<in> S

goal (1 subgoal):
 1. ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + (\<Sum>s'\<in>S. ennreal (\<tau> s s') * ExpCumm s' k) = ExpCumm s (Suc k)
[PROOF STEP]
by (simp add: field_simps sum.distrib sum_distrib_left[symmetric] ennreal_mult[symmetric]
            ennreal_plus[symmetric] sum_nonneg del: ennreal_plus)
[PROOF STATE]
proof (state)
this:
ennreal (\<Sum>s'\<in>S. \<tau> s s' * (\<rho> s + \<iota> s s')) + (\<Sum>s'\<in>S. ennreal (\<tau> s s') * ExpCumm s' k) = ExpCumm s (Suc k)

goal (1 subgoal):
 1. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<integral>\<^sup>+ \<omega>. ennreal (\<Sum>i<Suc k. \<rho> ((s ## \<omega>) !! i) + \<iota> ((s ## \<omega>) !! i) (\<omega> !! i)) \<partial>T s = ExpCumm s (Suc k)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<integral>\<^sup>+ \<omega>. ennreal (\<Sum>i<Suc k. \<rho> ((s ## \<omega>) !! i) + \<iota> ((s ## \<omega>) !! i) (\<omega> !! i)) \<partial>T s = ExpCumm s (Suc k)

goal (1 subgoal):
 1. ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
ExpCumm s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<Sum>i<Suc k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
ExpCumm s k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((s ## x) !! i) + \<iota> ((s ## x) !! i) (x !! i)) \<partial>T s

goal (7 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 6. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 7. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?s3 \<in> S \<Longrightarrow> ExpCumm ?s3 k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((?s3 ## x) !! i) + \<iota> ((?s3 ## x) !! i) (x !! i)) \<partial>T ?s3

goal (7 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (C\<^sup>\<le> k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
 6. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 7. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?s3 \<in> S \<Longrightarrow> ExpCumm ?s3 k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((?s3 ## x) !! i) + \<iota> ((?s3 ## x) !! i) (x !! i)) \<partial>T ?s3
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
?s3 \<in> S \<Longrightarrow> ExpCumm ?s3 k = \<integral>\<^sup>+ x. ennreal (\<Sum>i<k. \<rho> ((?s3 ## x) !! i) + \<iota> ((?s3 ## x) !! i) (x !! i)) \<partial>T ?s3

goal (1 subgoal):
 1. Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
Sat (Exp rel r (C\<^sup>\<le> k)) = Some (svalid (Exp rel r (C\<^sup>\<le> k)))

goal (6 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 6. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 6. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
case (9 rel r k)
[PROOF STATE]
proof (state)
this:
Sat (Exp rel r (I\<^sup>= k)) \<noteq> None

goal (6 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 6. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Sat (Exp rel r (I\<^sup>= k)) \<noteq> None

goal (6 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 6. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
fix s
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 6. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
assume "s \<in> S"
[PROOF STATE]
proof (state)
this:
s \<in> S

goal (6 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 6. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s \<in> S
[PROOF STEP]
have "ExpState s k = (\<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! k)) \<partial>T s)"
[PROOF STATE]
proof (prove)
using this:
s \<in> S

goal (1 subgoal):
 1. ExpState s k = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! k)) \<partial>T s
[PROOF STEP]
proof (induct k arbitrary: s)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s. s \<in> S \<Longrightarrow> ExpState s 0 = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! 0)) \<partial>T s
 2. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpState s k = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! k)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpState s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! Suc k)) \<partial>T s
[PROOF STEP]
case (Suc k)
[PROOF STATE]
proof (state)
this:
?s1 \<in> S \<Longrightarrow> ExpState ?s1 k = \<integral>\<^sup>+ x. ennreal (\<rho> ((?s1 ## x) !! k)) \<partial>T ?s1
s \<in> S

goal (2 subgoals):
 1. \<And>s. s \<in> S \<Longrightarrow> ExpState s 0 = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! 0)) \<partial>T s
 2. \<And>k s. \<lbrakk>\<And>s. s \<in> S \<Longrightarrow> ExpState s k = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! k)) \<partial>T s; s \<in> S\<rbrakk> \<Longrightarrow> ExpState s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! Suc k)) \<partial>T s
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?s1 \<in> S \<Longrightarrow> ExpState ?s1 k = \<integral>\<^sup>+ x. ennreal (\<rho> ((?s1 ## x) !! k)) \<partial>T ?s1
s \<in> S
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
?s1 \<in> S \<Longrightarrow> ExpState ?s1 k = \<integral>\<^sup>+ x. ennreal (\<rho> ((?s1 ## x) !! k)) \<partial>T ?s1
s \<in> S

goal (1 subgoal):
 1. ExpState s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! Suc k)) \<partial>T s
[PROOF STEP]
by (simp add: nn_integral_eq_sum[of s])
[PROOF STATE]
proof (state)
this:
ExpState s (Suc k) = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! Suc k)) \<partial>T s

goal (1 subgoal):
 1. \<And>s. s \<in> S \<Longrightarrow> ExpState s 0 = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! 0)) \<partial>T s
[PROOF STEP]
qed simp
[PROOF STATE]
proof (state)
this:
ExpState s k = \<integral>\<^sup>+ x. ennreal (\<rho> ((s ## x) !! k)) \<partial>T s

goal (6 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 6. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?s3 \<in> S \<Longrightarrow> ExpState ?s3 k = \<integral>\<^sup>+ x. ennreal (\<rho> ((?s3 ## x) !! k)) \<partial>T ?s3

goal (6 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r k. Sat (Exp rel r (I\<^sup>= k)) \<noteq> None \<Longrightarrow> Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
 6. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?s3 \<in> S \<Longrightarrow> ExpState ?s3 k = \<integral>\<^sup>+ x. ennreal (\<rho> ((?s3 ## x) !! k)) \<partial>T ?s3
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
?s3 \<in> S \<Longrightarrow> ExpState ?s3 k = \<integral>\<^sup>+ x. ennreal (\<rho> ((?s3 ## x) !! k)) \<partial>T ?s3

goal (1 subgoal):
 1. Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
Sat (Exp rel r (I\<^sup>= k)) = Some (svalid (Exp rel r (I\<^sup>= k)))

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
case (10 rel r F)
[PROOF STATE]
proof (state)
this:
Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
Sat (Exp rel r (Future F)) \<noteq> None

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
Sat (Exp rel r (Future F)) \<noteq> None

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
let ?F = "svalid F"
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
define N where "N \<equiv> Prob0 S ?F"
[PROOF STATE]
proof (state)
this:
N \<equiv> Prob0 S (svalid F)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
N \<equiv> Prob0 S (svalid F)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
define Y where "Y \<equiv> Prob1 N S ?F"
[PROOF STATE]
proof (state)
this:
Y \<equiv> Prob1 N S (svalid F)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Y \<equiv> Prob1 N S (svalid F)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
define const where "const \<equiv> (\<lambda>s. if s \<in> Y \<and> s \<notin> ?F then - \<rho> s - (\<Sum>s'\<in>S. \<tau> s s' * \<iota> s s') else 0)"
[PROOF STATE]
proof (state)
this:
const \<equiv> \<lambda>s. if s \<in> Y \<and> s \<notin> svalid F then - \<rho> s - (\<Sum>s'\<in>S. \<tau> s s' * \<iota> s s') else 0

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
Sat (Exp rel r (Future F)) \<noteq> None
N \<equiv> Prob0 S (svalid F)
Y \<equiv> Prob1 N S (svalid F)
const \<equiv> \<lambda>s. if s \<in> Y \<and> s \<notin> svalid F then - \<rho> s - (\<Sum>s'\<in>S. \<tau> s s' * \<iota> s s') else 0
[PROOF STEP]
obtain l
    where l: "gauss_jordan' (LES (S - Y \<union> ?F)) const = Some l"
    and F: "Sat F = Some ?F"
[PROOF STATE]
proof (prove)
using this:
Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F)
Sat (Exp rel r (Future F)) \<noteq> None
N \<equiv> Prob0 S (svalid F)
Y \<equiv> Prob1 N S (svalid F)
const \<equiv> \<lambda>s. if s \<in> Y \<and> s \<notin> svalid F then - \<rho> s - (\<Sum>s'\<in>S. \<tau> s s' * \<iota> s s') else 0

goal (1 subgoal):
 1. (\<And>l. \<lbrakk>gauss_jordan' (LES (S - Y \<union> svalid F)) const = Some l; Sat F = Some (svalid F)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (auto simp: ExpFuture_def Let_def split: bind_split_asm)
[PROOF STATE]
proof (state)
this:
gauss_jordan' (LES (S - Y \<union> svalid F)) const = Some l
Sat F = Some (svalid F)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
from l
[PROOF STATE]
proof (chain)
picking this:
gauss_jordan' (LES (S - Y \<union> svalid F)) const = Some l
[PROOF STEP]
have EF: "ExpFuture ?F =
    Some (\<lambda>s. if s \<in> Y then ennreal (l s) else \<infinity>)"
[PROOF STATE]
proof (prove)
using this:
gauss_jordan' (LES (S - Y \<union> svalid F)) const = Some l

goal (1 subgoal):
 1. ExpFuture (svalid F) = Some (\<lambda>s. if s \<in> Y then ennreal (l s) else \<infinity>)
[PROOF STEP]
unfolding ExpFuture_def N_def Y_def const_def
[PROOF STATE]
proof (prove)
using this:
gauss_jordan' (LES (S - Prob1 (Prob0 S (svalid F)) S (svalid F) \<union> svalid F)) (\<lambda>s. if s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F) \<and> s \<notin> svalid F then - \<rho> s - (\<Sum>s'\<in>S. \<tau> s s' * \<iota> s s') else 0) = Some l

goal (1 subgoal):
 1. (let N = Prob0 S (svalid F); Y = Prob1 N S (svalid F) in gauss_jordan' (LES (S - Y \<union> svalid F)) (\<lambda>i. if i \<in> Y \<and> i \<notin> svalid F then - \<rho> i - (\<Sum>s'\<in>S. \<tau> i s' * \<iota> i s') else 0) \<bind> (\<lambda>sol. Some (\<lambda>s. if s \<in> Y then ennreal (sol s) else \<infinity>))) = Some (\<lambda>s. if s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F) then ennreal (l s) else \<infinity>)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
ExpFuture (svalid F) = Some (\<lambda>s. if s \<in> Y then ennreal (l s) else \<infinity>)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
let ?R = "reward (Future F)"
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
have l_eq: "\<forall>s\<in>S. l s = enn2real (\<integral>\<^sup>+\<omega>. ?R (s ## \<omega>) \<partial>T s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>s\<in>S. l s = enn2real (\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s)
[PROOF STEP]
proof (rule uniqueness_of_ExpFuture[OF N_def Y_def const_def])
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s. s \<in> S \<Longrightarrow> (\<Sum>s'\<in>S. LES (S - Y \<union> svalid F) s s' * l s') = const s
[PROOF STEP]
fix s
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s. s \<in> S \<Longrightarrow> (\<Sum>s'\<in>S. LES (S - Y \<union> svalid F) s s' * l s') = const s
[PROOF STEP]
assume "s \<in> S"
[PROOF STATE]
proof (state)
this:
s \<in> S

goal (1 subgoal):
 1. \<And>s. s \<in> S \<Longrightarrow> (\<Sum>s'\<in>S. LES (S - Y \<union> svalid F) s s' * l s') = const s
[PROOF STEP]
show "\<And>s. s\<in>S \<Longrightarrow> (\<Sum>s'\<in>S. LES (S - Y \<union> ?F) s s' * l s') = const s"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>s. s \<in> S \<Longrightarrow> (\<Sum>s'\<in>S. LES (S - Y \<union> svalid F) s s' * l s') = const s
[PROOF STEP]
using gauss_jordan'_correct[OF l]
[PROOF STATE]
proof (prove)
using this:
\<forall>s\<in>S. (\<Sum>s'\<in>S. LES (S - Y \<union> svalid F) s s' * l s') = const s

goal (1 subgoal):
 1. \<And>s. s \<in> S \<Longrightarrow> (\<Sum>s'\<in>S. LES (S - Y \<union> svalid F) s s' * l s') = const s
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
?s1 \<in> S \<Longrightarrow> (\<Sum>s'\<in>S. LES (S - Y \<union> svalid F) ?s1 s' * l s') = const ?s1

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<forall>s\<in>S. l s = enn2real (\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<forall>s\<in>S. l s = enn2real (\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
fix s
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
assume [simp]: "s \<in> S" "s \<in> Y"
[PROOF STATE]
proof (state)
this:
s \<in> S
s \<in> Y

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s \<in> S
s \<in> Y
[PROOF STEP]
have "s \<in> Prob1 (Prob0 S ?F) S ?F"
[PROOF STATE]
proof (prove)
using this:
s \<in> S
s \<in> Y

goal (1 subgoal):
 1. s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F)
[PROOF STEP]
unfolding Y_def N_def
[PROOF STATE]
proof (prove)
using this:
s \<in> S
s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F)

goal (1 subgoal):
 1. s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F)
[PROOF STEP]
have "AE \<omega> in T s. (HLD S suntil HLD ?F) (s ## \<omega>)"
[PROOF STATE]
proof (prove)
using this:
s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F)

goal (1 subgoal):
 1. AE \<omega> in T s. (HLD S suntil HLD (svalid F)) (s ## \<omega>)
[PROOF STEP]
using svalid_subset_S
[PROOF STATE]
proof (prove)
using this:
s \<in> Prob1 (Prob0 S (svalid F)) S (svalid F)
svalid ?F \<subseteq> S

goal (1 subgoal):
 1. AE \<omega> in T s. (HLD S suntil HLD (svalid F)) (s ## \<omega>)
[PROOF STEP]
by (auto simp add: Prob1_iff)
[PROOF STATE]
proof (state)
this:
AE \<omega> in T s. (HLD S suntil HLD (svalid F)) (s ## \<omega>)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
from nn_integral_reward_finite[OF \<open>s \<in> S\<close>] this
[PROOF STATE]
proof (chain)
picking this:
AE \<omega> in T s. (HLD S suntil HLD (svalid ?F)) (s ## \<omega>) \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future ?F) (s ## \<omega>) \<partial>T s \<noteq> \<infinity>
AE \<omega> in T s. (HLD S suntil HLD (svalid F)) (s ## \<omega>)
[PROOF STEP]
have "(\<integral>\<^sup>+\<omega>. reward (Future F) (s ## \<omega>) \<partial>T s) \<noteq> \<infinity>"
[PROOF STATE]
proof (prove)
using this:
AE \<omega> in T s. (HLD S suntil HLD (svalid ?F)) (s ## \<omega>) \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future ?F) (s ## \<omega>) \<partial>T s \<noteq> \<infinity>
AE \<omega> in T s. (HLD S suntil HLD (svalid F)) (s ## \<omega>)

goal (1 subgoal):
 1. \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s \<noteq> \<infinity>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s \<noteq> \<infinity>

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
with l_eq \<open>s \<in> S\<close>
[PROOF STATE]
proof (chain)
picking this:
\<forall>s\<in>S. l s = enn2real (\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s)
s \<in> S
\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s \<noteq> \<infinity>
[PROOF STEP]
have "(\<integral>\<^sup>+\<omega>. reward (Future F) (s ## \<omega>) \<partial>T s) = ennreal (l s)"
[PROOF STATE]
proof (prove)
using this:
\<forall>s\<in>S. l s = enn2real (\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s)
s \<in> S
\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s \<noteq> \<infinity>

goal (1 subgoal):
 1. \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = ennreal (l s)
[PROOF STEP]
by (auto simp: less_top)
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = ennreal (l s)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>?s3 \<in> S; ?s3 \<in> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (?s3 ## \<omega>) \<partial>T ?s3 = ennreal (l ?s3)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<lbrakk>?s3 \<in> S; ?s3 \<in> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (?s3 ## \<omega>) \<partial>T ?s3 = ennreal (l ?s3)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<lbrakk>?s3 \<in> S; ?s3 \<in> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (?s3 ## \<omega>) \<partial>T ?s3 = ennreal (l ?s3)

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
fix s
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
assume "s \<in> S" "s \<notin> Y"
[PROOF STATE]
proof (state)
this:
s \<in> S
s \<notin> Y

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
with infinite_reward[of s F]
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>s \<in> S; s \<notin> Prob1 (Prob0 S (svalid F)) S (svalid F)\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = \<infinity>
s \<in> S
s \<notin> Y
[PROOF STEP]
have "(\<integral>\<^sup>+\<omega>. reward (Future F) (s ## \<omega>) \<partial>T s) = \<infinity>"
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>s \<in> S; s \<notin> Prob1 (Prob0 S (svalid F)) S (svalid F)\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = \<infinity>
s \<in> S
s \<notin> Y

goal (1 subgoal):
 1. \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = \<infinity>
[PROOF STEP]
by (simp add: Y_def N_def)
[PROOF STATE]
proof (state)
this:
\<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = \<infinity>

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>?s3 \<in> S; ?s3 \<notin> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (?s3 ## \<omega>) \<partial>T ?s3 = \<infinity>

goal (5 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
 5. \<And>rel r F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Exp rel r (Future F)) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>?s3 \<in> S; ?s3 \<in> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (?s3 ## \<omega>) \<partial>T ?s3 = ennreal (l ?s3)
\<lbrakk>?s3 \<in> S; ?s3 \<notin> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (?s3 ## \<omega>) \<partial>T ?s3 = \<infinity>
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>?s3 \<in> S; ?s3 \<in> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (?s3 ## \<omega>) \<partial>T ?s3 = ennreal (l ?s3)
\<lbrakk>?s3 \<in> S; ?s3 \<notin> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (?s3 ## \<omega>) \<partial>T ?s3 = \<infinity>

goal (1 subgoal):
 1. Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))
[PROOF STEP]
apply (auto simp add: EF F simp del: reward.simps)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>\<And>s. \<lbrakk>s \<in> S; s \<in> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = ennreal (l s); \<And>s. \<lbrakk>s \<in> S; s \<notin> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = \<top>; inrealrel rel (ennreal r) (ennreal (l x)); x \<in> S; inrealrel rel (ennreal r) \<top>\<rbrakk> \<Longrightarrow> inrealrel rel (ennreal r) (\<integral>\<^sup>+ \<omega>. reward (Future F) (x ## \<omega>) \<partial>T x)
[PROOF STEP]
apply (case_tac "x \<in> Y")
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>\<And>s. \<lbrakk>s \<in> S; s \<in> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = ennreal (l s); \<And>s. \<lbrakk>s \<in> S; s \<notin> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = \<top>; inrealrel rel (ennreal r) (ennreal (l x)); x \<in> S; inrealrel rel (ennreal r) \<top>; x \<in> Y\<rbrakk> \<Longrightarrow> inrealrel rel (ennreal r) (\<integral>\<^sup>+ \<omega>. reward (Future F) (x ## \<omega>) \<partial>T x)
 2. \<And>x. \<lbrakk>\<And>s. \<lbrakk>s \<in> S; s \<in> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = ennreal (l s); \<And>s. \<lbrakk>s \<in> S; s \<notin> Y\<rbrakk> \<Longrightarrow> \<integral>\<^sup>+ \<omega>. reward (Future F) (s ## \<omega>) \<partial>T s = \<top>; inrealrel rel (ennreal r) (ennreal (l x)); x \<in> S; inrealrel rel (ennreal r) \<top>; x \<notin> Y\<rbrakk> \<Longrightarrow> inrealrel rel (ennreal r) (\<integral>\<^sup>+ \<omega>. reward (Future F) (x ## \<omega>) \<partial>T x)
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
Sat (Exp rel r (Future F)) = Some (svalid (Exp rel r (Future F)))

goal (4 subgoals):
 1. Sat sform.true \<noteq> None \<Longrightarrow> Sat sform.true = Some (svalid sform.true)
 2. \<And>L. Sat (Label L) \<noteq> None \<Longrightarrow> Sat (Label L) = Some (svalid (Label L))
 3. \<And>F. \<lbrakk>Sat F \<noteq> None \<Longrightarrow> Sat F = Some (svalid F); Sat (Neg F) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (Neg F) = Some (svalid (Neg F))
 4. \<And>F1 F2. \<lbrakk>Sat F1 \<noteq> None \<Longrightarrow> Sat F1 = Some (svalid F1); \<And>a. \<lbrakk>Sat F1 = Some a; Sat F2 \<noteq> None\<rbrakk> \<Longrightarrow> Sat F2 = Some (svalid F2); Sat (And F1 F2) \<noteq> None\<rbrakk> \<Longrightarrow> Sat (And F1 F2) = Some (svalid (And F1 F2))
[PROOF STEP]
qed (auto split: bind_split_asm)