map_fixed_graph_aux_def: shows "map_fixed_graph_aux \<equiv> lfp (\<lambda>p x1 x2. (\<exists>map_fixed_aux fp l. x1 = (fp, l, Unit) \<and> x2 = Unit) \<or> (\<exists>map_fixed_aux fp l y. x1 = (fp, l, Var y) \<and> x2 = (if y \<in> set l then Var y else Var fp)) \<or> (\<exists>map_fixed_aux y fp l t. x1 = (fp, l, Lam y t) \<and> x2 = Lam y (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, y # l, t)) \<and> atom y \<sharp> (fp, l) \<and> p (fp, y # l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, y # l, t))) \<or> (\<exists>map_fixed_aux y fp l t. x1 = (fp, l, Rec y t) \<and> x2 = Rec y (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, y # l, t)) \<and> atom y \<sharp> (fp, l) \<and> p (fp, y # l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, y # l, t))) \<or> (\<exists>map_fixed_aux fp l t. x1 = (fp, l, Inj1 t) \<and> x2 = Inj1 (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))) \<or> (\<exists>map_fixed_aux fp l t. x1 = (fp, l, Inj2 t) \<and> x2 = Inj2 (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))) \<or> (\<exists>map_fixed_aux fp l t1 t2. x1 = (fp, l, Syntax.Pair t1 t2) \<and> x2 = Syntax.Pair (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t1)) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t2)) \<and> p (fp, l, t1) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t1)) \<and> p (fp, l, t2) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t2))) \<or> (\<exists>map_fixed_aux fp l t. x1 = (fp, l, Roll t) \<and> x2 = Roll (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))) \<or> (\<exists>map_fixed_aux y fp l t1 t2. x1 = (fp, l, Syntax.Let t1 y t2) \<and> x2 = Syntax.Let (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t1)) y (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, y # l, t2)) \<and> atom y \<sharp> (fp, l) \<and> p (fp, l, t1) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t1)) \<and> p (fp, y # l, t2) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, y # l, t2))) \<or> (\<exists>map_fixed_aux fp l t1 t2. x1 = (fp, l, App t1 t2) \<and> x2 = App (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t1)) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t2)) \<and> p (fp, l, t1) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t1)) \<and> p (fp, l, t2) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t2))) \<or> (\<exists>map_fixed_aux fp l t1 t2 t3. x1 = (fp, l, Case t1 t2 t3) \<and> x2 = Case (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t1)) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t2)) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t3)) \<and> p (fp, l, t1) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t1)) \<and> p (fp, l, t2) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t2)) \<and> p (fp, l, t3) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t3))) \<or> (\<exists>map_fixed_aux fp l t. x1 = (fp, l, Prj1 t) \<and> x2 = Prj1 (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))) \<or> (\<exists>map_fixed_aux fp l t. x1 = (fp, l, Prj2 t) \<and> x2 = Prj2 (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))) \<or> (\<exists>map_fixed_aux fp l t. x1 = (fp, l, Unroll t) \<and> x2 = Unroll (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))) \<or> (\<exists>map_fixed_aux fp l t. x1 = (fp, l, Auth t) \<and> x2 = Auth (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))) \<or> (\<exists>map_fixed_aux fp l t. x1 = (fp, l, Unauth t) \<and> x2 = Unauth (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))) \<or> (\<exists>map_fixed_aux fp l h. x1 = (fp, l, Hash h) \<and> x2 = Hash h) \<or> (\<exists>map_fixed_aux fp l h t. x1 = (fp, l, Hashed h t) \<and> x2 = Hashed h (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t)) \<and> p (fp, l, t) (((\<lambda>uu_. uu_) \<circ> map_fixed_aux) (fp, l, t))))"