[STATEMENT]
theorem sat_consistency:
  \<open>consistency {S. infinite (- (\<Union>p \<in> S. params p)) \<and> (\<exists>f. \<forall>(p::('a, 'b)form) \<in> S. eval e f g p)}\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. consistency {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
unfolding consistency_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<longrightarrow> (\<forall>p ts. \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)) \<and> FF \<notin> S \<and> Neg TT \<notin> S \<and> (\<forall>Z. Neg (Neg Z) \<in> S \<longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>A B. And A B \<in> S \<longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>A B. Neg (Or A B) \<in> S \<longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>A B. Or A B \<in> S \<longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>A B. Neg (And A B) \<in> S \<longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>A B. Impl A B \<in> S \<longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>A B. Neg (Impl A B) \<in> S \<longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>P t. closedt 0 t \<longrightarrow> Forall P \<in> S \<longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>P t. closedt 0 t \<longrightarrow> Neg (Exists P) \<in> S \<longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}) \<and> (\<forall>P. Exists P \<in> S \<longrightarrow> (\<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))})) \<and> (\<forall>P. Neg (Forall P) \<in> S \<longrightarrow> (\<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}))
[PROOF STEP]
proof (intro allI impI conjI)
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>S p ts. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 3. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 4. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 14 subgoals...
[PROOF STEP]
let ?C = \<open>{S. infinite (- (\<Union>p \<in> S. params p)) \<and> (\<exists>f. \<forall>p \<in> S. eval e f g p)}\<close>
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>S p ts. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 3. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 4. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 14 subgoals...
[PROOF STEP]
fix S :: \<open>('a, 'b) form set\<close>
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>S p ts. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 3. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 4. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 14 subgoals...
[PROOF STEP]
assume \<open>S \<in> ?C\<close>
[PROOF STATE]
proof (state)
this:
S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (14 subgoals):
 1. \<And>S p ts. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 3. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 4. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 14 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
have inf_params: \<open>infinite (- (\<Union>p \<in> S. params p))\<close>
    and \<open>\<exists>f. \<forall>p \<in> S. eval e f g p\<close>
[PROOF STATE]
proof (prove)
using this:
S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (1 subgoal):
 1. infinite (- \<Union> (params ` S)) &&& \<exists>f. \<forall>p\<in>S. eval e f g p
[PROOF STEP]
by blast+
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` S))
\<exists>f. \<forall>p\<in>S. eval e f g p

goal (14 subgoals):
 1. \<And>S p ts. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 3. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 4. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 14 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
infinite (- \<Union> (params ` S))
\<exists>f. \<forall>p\<in>S. eval e f g p
[PROOF STEP]
obtain f where *: \<open>\<forall>x \<in> S. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))
\<exists>f. \<forall>p\<in>S. eval e f g p

goal (1 subgoal):
 1. (\<And>f. \<forall>x\<in>S. eval e f g x \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S. eval e f g x

goal (14 subgoals):
 1. \<And>S p ts. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 3. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 4. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 14 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S. eval e f g x

goal (14 subgoals):
 1. \<And>S p ts. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 3. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 4. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 14 subgoals...
[PROOF STEP]
fix p ts
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>S p ts. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 3. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 4. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 14 subgoals...
[PROOF STEP]
show \<open>\<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S \<Longrightarrow> False
[PROOF STEP]
assume \<open>Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S

goal (1 subgoal):
 1. Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S
[PROOF STEP]
have \<open>eval e f g (Pred p ts) \<and> eval e f g (Neg (Pred p ts))\<close>
[PROOF STATE]
proof (prove)
using this:
Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S

goal (1 subgoal):
 1. eval e f g (Pred p ts) \<and> eval e f g (Neg (Pred p ts))
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. eval e f g (Pred p ts) \<and> eval e f g (Neg (Pred p ts))
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
eval e f g (Pred p ts) \<and> eval e f g (Neg (Pred p ts))

goal (1 subgoal):
 1. Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
eval e f g (Pred p ts) \<and> eval e f g (Neg (Pred p ts))
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
eval e f g (Pred p ts) \<and> eval e f g (Neg (Pred p ts))

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> (Pred p ts \<in> S \<and> Neg (Pred p ts) \<in> S)

goal (13 subgoals):
 1. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 3. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 13 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<not> (Pred ?p3 ?ts3 \<in> S \<and> Neg (Pred ?p3 ?ts3) \<in> S)

goal (13 subgoals):
 1. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> FF \<notin> S
 2. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 3. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 13 subgoals...
[PROOF STEP]
show \<open>FF \<notin> S\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. FF \<notin> S
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. FF \<notin> S
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
FF \<notin> S

goal (12 subgoals):
 1. \<And>S. S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<Longrightarrow> Neg TT \<notin> S
 2. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 12 subgoals...
[PROOF STEP]
show \<open>Neg TT \<notin> S\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Neg TT \<notin> S
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. Neg TT \<notin> S
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
Neg TT \<notin> S

goal (11 subgoals):
 1. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 11 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Neg TT \<notin> S

goal (11 subgoals):
 1. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 11 subgoals...
[PROOF STEP]
fix Z
[PROOF STATE]
proof (state)
goal (11 subgoals):
 1. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 11 subgoals...
[PROOF STEP]
assume \<open>Neg (Neg Z) \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Neg (Neg Z) \<in> S

goal (11 subgoals):
 1. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 11 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Neg (Neg Z) \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Neg (Neg Z)}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Neg (Neg Z) \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Neg Z)}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Neg (Neg Z) \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Neg Z)}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg (Neg Z)}. eval e f g x

goal (11 subgoals):
 1. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 11 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Neg (Neg Z)}. eval e f g x
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Z}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Neg (Neg Z)}. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Z}. eval e f g x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Z}. eval e f g x

goal (11 subgoals):
 1. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 11 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Z}. eval e f g x

goal (11 subgoals):
 1. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 11 subgoals...
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {Z}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Z})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Z})))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {Z})))

goal (11 subgoals):
 1. \<And>S Z. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Neg Z) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
A total of 11 subgoals...
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Z}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {Z})))
[PROOF STEP]
show \<open>S \<union> {Z} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Z}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {Z})))

goal (1 subgoal):
 1. S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {Z} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Neg (Neg ?Z3) \<in> S \<Longrightarrow> S \<union> {?Z3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Neg (Neg ?Z3) \<in> S \<Longrightarrow> S \<union> {?Z3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix A B
[PROOF STATE]
proof (state)
goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>And A B \<in> S\<close>
[PROOF STATE]
proof (state)
this:
And A B \<in> S

goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
And A B \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {And A B}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
And A B \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {And A B}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
And A B \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {And A B}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {And A B}. eval e f g x

goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {And A B}. eval e f g x
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {A, B}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {And A B}. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {A, B}. eval e f g x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {A, B}. eval e f g x

goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {A, B}. eval e f g x

goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {A, B}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {A, B})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {A, B})))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {A, B})))

goal (10 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; And A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 10. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {A, B}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {A, B})))
[PROOF STEP]
show \<open>S \<union> {A, B} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {A, B}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {A, B})))

goal (1 subgoal):
 1. S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {A, B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
And ?A3 ?B3 \<in> S \<Longrightarrow> S \<union> {?A3, ?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
And ?A3 ?B3 \<in> S \<Longrightarrow> S \<union> {?A3, ?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix A B
[PROOF STATE]
proof (state)
goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Neg (Or A B) \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Neg (Or A B) \<in> S

goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Neg (Or A B) \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Neg (Or A B)}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Neg (Or A B) \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Or A B)}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Neg (Or A B) \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Or A B)}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg (Or A B)}. eval e f g x

goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Neg (Or A B)}. eval e f g x
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Neg A, Neg B}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Neg (Or A B)}. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg A, Neg B}. eval e f g x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg A, Neg B}. eval e f g x

goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg A, Neg B}. eval e f g x

goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {Neg A, Neg B}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Neg A, Neg B})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Neg A, Neg B})))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {Neg A, Neg B})))

goal (9 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Or A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 9. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Neg A, Neg B}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {Neg A, Neg B})))
[PROOF STEP]
show \<open>S \<union> {Neg A, Neg B} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Neg A, Neg B}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {Neg A, Neg B})))

goal (1 subgoal):
 1. S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {Neg A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Neg (Or ?A3 ?B3) \<in> S \<Longrightarrow> S \<union> {Neg ?A3, Neg ?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Neg (Or ?A3 ?B3) \<in> S \<Longrightarrow> S \<union> {Neg ?A3, Neg ?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix A B
[PROOF STATE]
proof (state)
goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Neg (Impl A B) \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Neg (Impl A B) \<in> S

goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Neg (Impl A B) \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Neg (Impl A B)}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Neg (Impl A B) \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Impl A B)}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Neg (Impl A B) \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Impl A B)}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg (Impl A B)}. eval e f g x

goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Neg (Impl A B)}. eval e f g x
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {A, Neg B}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Neg (Impl A B)}. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {A, Neg B}. eval e f g x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {A, Neg B}. eval e f g x

goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {A, Neg B}. eval e f g x

goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {A, Neg B}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {A, Neg B})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {A, Neg B})))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {A, Neg B})))

goal (8 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Impl A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 8. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {A, Neg B}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {A, Neg B})))
[PROOF STEP]
show \<open>S \<union> {A, Neg B} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {A, Neg B}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {A, Neg B})))

goal (1 subgoal):
 1. S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {A, Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Neg (Impl ?A3 ?B3) \<in> S \<Longrightarrow> S \<union> {?A3, Neg ?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Neg (Impl ?A3 ?B3) \<in> S \<Longrightarrow> S \<union> {?A3, Neg ?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix A B
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Or A B \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Or A B \<in> S

goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Or A B \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Or A B}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Or A B \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Or A B}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Or A B \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Or A B}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Or A B}. eval e f g x

goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Or A B}. eval e f g x
[PROOF STEP]
have \<open>(\<forall>x \<in> S \<union> {A}. eval e f g x) \<or>
               (\<forall>x \<in> S \<union> {B}. eval e f g x)\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Or A B}. eval e f g x

goal (1 subgoal):
 1. (\<forall>x\<in>S \<union> {A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(\<forall>x\<in>S \<union> {A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)

goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<forall>x\<in>S \<union> {A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)

goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {A}. params p))\<close>
      and \<open>infinite (- (\<Union>p \<in> S \<union> {B}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {A}))) &&& infinite (- \<Union> (params ` (S \<union> {B})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {A}))) &&& infinite (- \<Union> (params ` (S \<union> {B})))
[PROOF STEP]
by simp_all
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {A})))
infinite (- \<Union> (params ` (S \<union> {B})))

goal (7 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Or A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 7. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<forall>x\<in>S \<union> {A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)
infinite (- \<Union> (params ` (S \<union> {A})))
infinite (- \<Union> (params ` (S \<union> {B})))
[PROOF STEP]
show \<open>S \<union> {A} \<in> ?C \<or> S \<union> {B} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
(\<forall>x\<in>S \<union> {A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)
infinite (- \<Union> (params ` (S \<union> {A})))
infinite (- \<Union> (params ` (S \<union> {B})))

goal (1 subgoal):
 1. S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Or ?A3 ?B3 \<in> S \<Longrightarrow> S \<union> {?A3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Or ?A3 ?B3 \<in> S \<Longrightarrow> S \<union> {?A3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix A B
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Neg (And A B) \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Neg (And A B) \<in> S

goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Neg (And A B) \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Neg (And A B)}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Neg (And A B) \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (And A B)}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Neg (And A B) \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (And A B)}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg (And A B)}. eval e f g x

goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Neg (And A B)}. eval e f g x
[PROOF STEP]
have \<open>(\<forall>x \<in> S \<union> {Neg A}. eval e f g x) \<or>
               (\<forall>x \<in> S \<union> {Neg B}. eval e f g x)\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Neg (And A B)}. eval e f g x

goal (1 subgoal):
 1. (\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {Neg B}. eval e f g x)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {Neg B}. eval e f g x)

goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {Neg B}. eval e f g x)

goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {Neg A}. params p))\<close>
      and \<open>infinite (- (\<Union>p \<in> S \<union> {Neg B}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Neg A}))) &&& infinite (- \<Union> (params ` (S \<union> {Neg B})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Neg A}))) &&& infinite (- \<Union> (params ` (S \<union> {Neg B})))
[PROOF STEP]
by simp_all
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {Neg A})))
infinite (- \<Union> (params ` (S \<union> {Neg B})))

goal (6 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (And A B) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 6. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {Neg B}. eval e f g x)
infinite (- \<Union> (params ` (S \<union> {Neg A})))
infinite (- \<Union> (params ` (S \<union> {Neg B})))
[PROOF STEP]
show \<open>S \<union> {Neg A} \<in> ?C \<or> S \<union> {Neg B} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
(\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {Neg B}. eval e f g x)
infinite (- \<Union> (params ` (S \<union> {Neg A})))
infinite (- \<Union> (params ` (S \<union> {Neg B})))

goal (1 subgoal):
 1. S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {Neg B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Neg (And ?A3 ?B3) \<in> S \<Longrightarrow> S \<union> {Neg ?A3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {Neg ?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Neg (And ?A3 ?B3) \<in> S \<Longrightarrow> S \<union> {Neg ?A3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {Neg ?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix A B
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Impl A B \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Impl A B \<in> S

goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Impl A B \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Impl A B}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Impl A B \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Impl A B}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Impl A B \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Impl A B}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Impl A B}. eval e f g x

goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Impl A B}. eval e f g x
[PROOF STEP]
have \<open>(\<forall>x \<in> S \<union> {Neg A}. eval e f g x) \<or>
               (\<forall>x \<in> S \<union> {B}. eval e f g x)\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Impl A B}. eval e f g x

goal (1 subgoal):
 1. (\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)

goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)

goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {Neg A}. params p))\<close>
      and \<open>infinite (- (\<Union>p \<in> S \<union> {B}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Neg A}))) &&& infinite (- \<Union> (params ` (S \<union> {B})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Neg A}))) &&& infinite (- \<Union> (params ` (S \<union> {B})))
[PROOF STEP]
by simp_all
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {Neg A})))
infinite (- \<Union> (params ` (S \<union> {B})))

goal (5 subgoals):
 1. \<And>S A B. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Impl A B \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 5. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)
infinite (- \<Union> (params ` (S \<union> {Neg A})))
infinite (- \<Union> (params ` (S \<union> {B})))
[PROOF STEP]
show \<open>S \<union> {Neg A} \<in> ?C \<or> S \<union> {B} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
(\<forall>x\<in>S \<union> {Neg A}. eval e f g x) \<or> (\<forall>x\<in>S \<union> {B}. eval e f g x)
infinite (- \<Union> (params ` (S \<union> {Neg A})))
infinite (- \<Union> (params ` (S \<union> {B})))

goal (1 subgoal):
 1. S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {Neg A} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {B} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Impl ?A3 ?B3 \<in> S \<Longrightarrow> S \<union> {Neg ?A3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Impl ?A3 ?B3 \<in> S \<Longrightarrow> S \<union> {Neg ?A3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)} \<or> S \<union> {?B3} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix P and t :: \<open>'a term\<close>
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Forall P \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Forall P \<in> S

goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Forall P \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Forall P}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Forall P \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Forall P}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Forall P \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Forall P}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Forall P}. eval e f g x

goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Forall P}. eval e f g x
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {P[t/0]}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Forall P}. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {P[t/0]}. eval e f g x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {P[t/0]}. eval e f g x

goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {P[t/0]}. eval e f g x

goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {P[t/0]}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {P[t/0]})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {P[t/0]})))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {P[t/0]})))

goal (4 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Forall P \<in> S\<rbrakk> \<Longrightarrow> S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 4. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {P[t/0]}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {P[t/0]})))
[PROOF STEP]
show \<open>S \<union> {P[t/0]} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {P[t/0]}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {P[t/0]})))

goal (1 subgoal):
 1. S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {P[t/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Forall ?P3 \<in> S \<Longrightarrow> S \<union> {?P3[?t3/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Forall ?P3 \<in> S \<Longrightarrow> S \<union> {?P3[?t3/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix P and t :: \<open>'a term\<close>
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Neg (Exists P) \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Neg (Exists P) \<in> S

goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Neg (Exists P) \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Neg (Exists P)}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Neg (Exists P) \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Exists P)}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Neg (Exists P) \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Exists P)}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg (Exists P)}. eval e f g x

goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Neg (Exists P)}. eval e f g x
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Neg (P[t/0])}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Neg (Exists P)}. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (P[t/0])}. eval e f g x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg (P[t/0])}. eval e f g x

goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg (P[t/0])}. eval e f g x

goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {Neg (P[t/0])}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Neg (P[t/0])})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {Neg (P[t/0])})))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {Neg (P[t/0])})))

goal (3 subgoals):
 1. \<And>S P t. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; closedt 0 t; Neg (Exists P) \<in> S\<rbrakk> \<Longrightarrow> S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 3. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Neg (P[t/0])}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {Neg (P[t/0])})))
[PROOF STEP]
show \<open>S \<union> {Neg (P[t/0])} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Neg (P[t/0])}. eval e f g x
infinite (- \<Union> (params ` (S \<union> {Neg (P[t/0])})))

goal (1 subgoal):
 1. S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
S \<union> {Neg (P[t/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Neg (Exists ?P3) \<in> S \<Longrightarrow> S \<union> {Neg (?P3[?t3/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Neg (Exists ?P3) \<in> S \<Longrightarrow> S \<union> {Neg (?P3[?t3/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix P
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Exists P \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Exists P \<in> S

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Exists P \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Exists P}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Exists P \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Exists P}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Exists P \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Exists P}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Exists P}. eval e f g x

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Exists P}. eval e f g x
[PROOF STEP]
have \<open>eval e f g (Exists P)\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Exists P}. eval e f g x

goal (1 subgoal):
 1. eval e f g (Exists P)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
eval e f g (Exists P)

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
eval e f g (Exists P)
[PROOF STEP]
obtain z where \<open>eval (e\<langle>0:z\<rangle>) f g P\<close>
[PROOF STATE]
proof (prove)
using this:
eval e f g (Exists P)

goal (1 subgoal):
 1. (\<And>z. eval (e\<langle>0:z\<rangle>) f g P \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
eval (e\<langle>0:z\<rangle>) f g P

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
eval (e\<langle>0:z\<rangle>) f g P

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
obtain x where **: \<open>x \<in> - (\<Union>p \<in> S. params p)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>x. x \<in> - \<Union> (params ` S) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using inf_params infinite_imp_nonempty
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))
infinite ?S \<Longrightarrow> ?S \<noteq> {}

goal (1 subgoal):
 1. (\<And>x. x \<in> - \<Union> (params ` S) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
x \<in> - \<Union> (params ` S)

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
x \<in> - \<Union> (params ` S)
[PROOF STEP]
have \<open>x \<notin> params P\<close>
[PROOF STATE]
proof (prove)
using this:
x \<in> - \<Union> (params ` S)

goal (1 subgoal):
 1. x \<notin> params P
[PROOF STEP]
using \<open>Exists P \<in> S\<close>
[PROOF STATE]
proof (prove)
using this:
x \<in> - \<Union> (params ` S)
Exists P \<in> S

goal (1 subgoal):
 1. x \<notin> params P
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<notin> params P

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
eval (e\<langle>0:z\<rangle>) f g P
x \<notin> params P
[PROOF STEP]
have \<open>eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P\<close>
[PROOF STATE]
proof (prove)
using this:
eval (e\<langle>0:z\<rangle>) f g P
x \<notin> params P

goal (1 subgoal):
 1. eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>\<forall>p \<in> S. eval e (f(x := \<lambda>y. z)) g p\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p
[PROOF STEP]
using * **
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S. eval e f g x
x \<in> - \<Union> (params ` S)

goal (1 subgoal):
 1. \<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {P[App x []/0]}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P
\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p
infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))
[PROOF STEP]
have \<open>S \<union> {P[App x []/0]}  \<in>
                      {S. infinite (- (\<Union>p \<in> S. params p)) \<and> (\<forall>p \<in> S. eval e (f(x := \<lambda>y. z)) g p)}\<close>
[PROOF STATE]
proof (prove)
using this:
eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P
\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p
infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))

goal (1 subgoal):
 1. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p)}
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p)}

goal (2 subgoals):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Exists P \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
 2. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p)}
[PROOF STEP]
show \<open>\<exists>x. S \<union> {P[App x []/0]} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p)}

goal (1 subgoal):
 1. \<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>x. S \<union> {P[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Exists ?P3 \<in> S \<Longrightarrow> \<exists>x. S \<union> {?P3[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
Exists ?P3 \<in> S \<Longrightarrow> \<exists>x. S \<union> {?P3[App x []/0]} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
fix P
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
assume \<open>Neg (Forall P) \<in> S\<close>
[PROOF STATE]
proof (state)
this:
Neg (Forall P) \<in> S

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
Neg (Forall P) \<in> S
[PROOF STEP]
have \<open>\<forall>x \<in> S \<union> {Neg (Forall P)}. eval e f g x\<close>
[PROOF STATE]
proof (prove)
using this:
Neg (Forall P) \<in> S

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Forall P)}. eval e f g x
[PROOF STEP]
using *
[PROOF STATE]
proof (prove)
using this:
Neg (Forall P) \<in> S
\<forall>x\<in>S. eval e f g x

goal (1 subgoal):
 1. \<forall>x\<in>S \<union> {Neg (Forall P)}. eval e f g x
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>x\<in>S \<union> {Neg (Forall P)}. eval e f g x

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>x\<in>S \<union> {Neg (Forall P)}. eval e f g x
[PROOF STEP]
have \<open>eval e f g (Neg (Forall P))\<close>
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S \<union> {Neg (Forall P)}. eval e f g x

goal (1 subgoal):
 1. eval e f g (Neg (Forall P))
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
eval e f g (Neg (Forall P))

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
eval e f g (Neg (Forall P))
[PROOF STEP]
obtain z where \<open>\<not> eval (e\<langle>0:z\<rangle>) f g P\<close>
[PROOF STATE]
proof (prove)
using this:
eval e f g (Neg (Forall P))

goal (1 subgoal):
 1. (\<And>z. \<not> eval (e\<langle>0:z\<rangle>) f g P \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<not> eval (e\<langle>0:z\<rangle>) f g P

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<not> eval (e\<langle>0:z\<rangle>) f g P

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
obtain x where **: \<open>x \<in> - (\<Union>p \<in> S. params p)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>x. x \<in> - \<Union> (params ` S) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using inf_params infinite_imp_nonempty
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))
infinite ?S \<Longrightarrow> ?S \<noteq> {}

goal (1 subgoal):
 1. (\<And>x. x \<in> - \<Union> (params ` S) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
x \<in> - \<Union> (params ` S)

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
x \<in> - \<Union> (params ` S)
[PROOF STEP]
have \<open>x \<notin> params P\<close>
[PROOF STATE]
proof (prove)
using this:
x \<in> - \<Union> (params ` S)

goal (1 subgoal):
 1. x \<notin> params P
[PROOF STEP]
using \<open>Neg (Forall P) \<in> S\<close>
[PROOF STATE]
proof (prove)
using this:
x \<in> - \<Union> (params ` S)
Neg (Forall P) \<in> S

goal (1 subgoal):
 1. x \<notin> params P
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<notin> params P

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<not> eval (e\<langle>0:z\<rangle>) f g P
x \<notin> params P
[PROOF STEP]
have \<open>\<not> eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P\<close>
[PROOF STATE]
proof (prove)
using this:
\<not> eval (e\<langle>0:z\<rangle>) f g P
x \<notin> params P

goal (1 subgoal):
 1. \<not> eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<not> eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<not> eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>\<forall>p \<in> S. eval e (f(x := \<lambda>y. z)) g p\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p
[PROOF STEP]
using * **
[PROOF STATE]
proof (prove)
using this:
\<forall>x\<in>S. eval e f g x
x \<in> - \<Union> (params ` S)

goal (1 subgoal):
 1. \<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
have \<open>infinite (- (\<Union>p \<in> S \<union> {P[App x []/0]}. params p))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))
[PROOF STEP]
using inf_params
[PROOF STATE]
proof (prove)
using this:
infinite (- \<Union> (params ` S))

goal (1 subgoal):
 1. infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<not> eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P
\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p
infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))
[PROOF STEP]
have \<open>S \<union> {Neg (P[App x []/0])}  \<in>
                      {S. infinite (- (\<Union>p \<in> S. params p)) \<and> (\<forall>p \<in> S. eval e (f(x := \<lambda>y. z)) g p)}\<close>
[PROOF STATE]
proof (prove)
using this:
\<not> eval (e\<langle>0:(f(x := \<lambda>y. z)) x []\<rangle>) (f(x := \<lambda>y. z)) g P
\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p
infinite (- \<Union> (params ` (S \<union> {P[App x []/0]})))

goal (1 subgoal):
 1. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p)}
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p)}

goal (1 subgoal):
 1. \<And>S P. \<lbrakk>S \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}; Neg (Forall P) \<in> S\<rbrakk> \<Longrightarrow> \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. Ball S (eval e f g))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p)}
[PROOF STEP]
show \<open>\<exists>x. S \<union> {Neg (P[App x []/0])} \<in> ?C\<close>
[PROOF STATE]
proof (prove)
using this:
S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<forall>p\<in>S. eval e (f(x := \<lambda>y. z)) g p)}

goal (1 subgoal):
 1. \<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>x. S \<union> {Neg (P[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal:
No subgoals!
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
Neg (Forall ?P3) \<in> S \<Longrightarrow> \<exists>x. S \<union> {Neg (?P3[App x []/0])} \<in> {S. infinite (- \<Union> (params ` S)) \<and> (\<exists>f. \<forall>p\<in>S. eval e f g p)}

goal:
No subgoals!
[PROOF STEP]
qed