cCCexp_graph_aux_def: shows "cCCexp_graph_aux \<equiv> lfp (\<lambda>p x1 x2. (\<exists>cCCexp_aux x. x1 = Var x \<and> x2 = (\<Lambda> n. (esing x\<cdot>(up\<cdot>n), \<bottom>))) \<or> (\<exists>cCCexp_aux x e. x1 = Lam [x]. e \<and> x2 = (\<Lambda> n. combined_restrict (fv (Lam [x]. e)) (fst (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e\<cdot>(pred\<cdot>n)), predCC (fv (Lam [x]. e)) (\<Lambda> a. snd (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e\<cdot>a))\<cdot>n)) \<and> HOL.induct_forall (\<lambda>xa. p e (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e)) \<and> HOL.induct_forall (\<lambda>xa. HOL.induct_forall (\<lambda>xb. p e (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e)))) \<or> (\<exists>cCCexp_aux e x. x1 = App e x \<and> x2 = (\<Lambda> n. (fst (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e\<cdot>(inc\<cdot>n)) \<squnion> esing x\<cdot>(up\<cdot>0), snd (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e\<cdot>(inc\<cdot>n)) \<squnion> {x} G\<times> insert x (fv e))) \<and> HOL.induct_forall (\<lambda>xa. p e (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e)) \<and> HOL.induct_forall (\<lambda>xa. p e (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e))) \<or> (\<exists>cCCexp_aux \<Gamma> e. x1 = Terms.Let \<Gamma> e \<and> x2 = (\<Lambda> n. combined_restrict (fv (Terms.Let \<Gamma> e)) (CoCallArityAnalysis.cccFix_choose ((\<lambda>uu_. uu_) \<circ> cCCexp_aux) \<Gamma>\<cdot>(((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e\<cdot>n))) \<and> HOL.induct_forall (\<lambda>x. HOL.induct_forall (\<lambda>ea. HOL.induct_implies (ea \<in> snd ` set \<Gamma>) (p ea (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) ea)))) \<and> HOL.induct_forall (\<lambda>x. p e (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e))) \<or> (\<exists>cCCexp_aux b. x1 = Bool b \<and> x2 = \<bottom>) \<or> (\<exists>cCCexp_aux scrut e1 e2. x1 = (scrut ? e1 : e2) \<and> x2 = (\<Lambda> n. (fst (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) scrut\<cdot>0) \<squnion> fst (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e1\<cdot>n) \<squnion> fst (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e2\<cdot>n), snd (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) scrut\<cdot>0) \<squnion> (snd (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e1\<cdot>n) \<squnion> snd (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e2\<cdot>n)) \<squnion> edom (fst (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) scrut\<cdot>0)) G\<times> (edom (fst (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e1\<cdot>n)) \<union> edom (fst (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e2\<cdot>n))))) \<and> HOL.induct_forall (\<lambda>x. p scrut (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) scrut)) \<and> HOL.induct_forall (\<lambda>x. p e1 (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e1)) \<and> HOL.induct_forall (\<lambda>x. p e2 (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e2)) \<and> HOL.induct_forall (\<lambda>x. p scrut (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) scrut)) \<and> HOL.induct_forall (\<lambda>x. p e1 (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e1)) \<and> HOL.induct_forall (\<lambda>x. p e2 (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e2)) \<and> HOL.induct_forall (\<lambda>x. p scrut (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) scrut)) \<and> HOL.induct_forall (\<lambda>x. p e1 (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e1)) \<and> HOL.induct_forall (\<lambda>x. p e2 (((\<lambda>uu_. uu_) \<circ> cCCexp_aux) e2))))"