induct: fixes x1 :: "Syntax.var \<times> Syntax.var list \<times> Syntax.term"   and x2 :: "Syntax.term"   and P :: "Syntax.var \<times> Syntax.var list \<times> Syntax.term \<Rightarrow> Syntax.term \<Rightarrow> bool" assumes "map_fixed_graph x1 x2"   and "\<And>map_fixed_sum fp l. P (fp, l, Unit) Unit"   and "\<And>map_fixed_sum fp l y. P (fp, l, Var y) (if y \<in> set l then Var y else Var fp)"   and "\<And>map_fixed_sum y fp l t. \<lbrakk>atom y \<sharp> (fp, l); map_fixed_graph (fp, y # l, t) (map_fixed_sum (fp, y # l, t)); P (fp, y # l, t) (map_fixed_sum (fp, y # l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Lam y t) (Lam y (map_fixed_sum (fp, y # l, t)))"   and "\<And>map_fixed_sum y fp l t. \<lbrakk>atom y \<sharp> (fp, l); map_fixed_graph (fp, y # l, t) (map_fixed_sum (fp, y # l, t)); P (fp, y # l, t) (map_fixed_sum (fp, y # l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Rec y t) (Rec y (map_fixed_sum (fp, y # l, t)))"   and "\<And>map_fixed_sum fp l t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Inj1 t) (Inj1 (map_fixed_sum (fp, l, t)))"   and "\<And>map_fixed_sum fp l t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Inj2 t) (Inj2 (map_fixed_sum (fp, l, t)))"   and "\<And>map_fixed_sum fp l t1 t2. \<lbrakk>map_fixed_graph (fp, l, t1) (map_fixed_sum (fp, l, t1)); P (fp, l, t1) (map_fixed_sum (fp, l, t1)); map_fixed_graph (fp, l, t2) (map_fixed_sum (fp, l, t2)); P (fp, l, t2) (map_fixed_sum (fp, l, t2))\<rbrakk> \<Longrightarrow> P (fp, l, Syntax.Pair t1 t2) (Syntax.Pair (map_fixed_sum (fp, l, t1)) (map_fixed_sum (fp, l, t2)))"   and "\<And>map_fixed_sum fp l t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Roll t) (Roll (map_fixed_sum (fp, l, t)))"   and "\<And>map_fixed_sum y fp l t1 t2. \<lbrakk>atom y \<sharp> (fp, l); map_fixed_graph (fp, l, t1) (map_fixed_sum (fp, l, t1)); P (fp, l, t1) (map_fixed_sum (fp, l, t1)); map_fixed_graph (fp, y # l, t2) (map_fixed_sum (fp, y # l, t2)); P (fp, y # l, t2) (map_fixed_sum (fp, y # l, t2))\<rbrakk> \<Longrightarrow> P (fp, l, Syntax.Let t1 y t2) (Syntax.Let (map_fixed_sum (fp, l, t1)) y (map_fixed_sum (fp, y # l, t2)))"   and "\<And>map_fixed_sum fp l t1 t2. \<lbrakk>map_fixed_graph (fp, l, t1) (map_fixed_sum (fp, l, t1)); P (fp, l, t1) (map_fixed_sum (fp, l, t1)); map_fixed_graph (fp, l, t2) (map_fixed_sum (fp, l, t2)); P (fp, l, t2) (map_fixed_sum (fp, l, t2))\<rbrakk> \<Longrightarrow> P (fp, l, App t1 t2) (App (map_fixed_sum (fp, l, t1)) (map_fixed_sum (fp, l, t2)))"   and "\<And>map_fixed_sum fp l t1 t2 t3. \<lbrakk>map_fixed_graph (fp, l, t1) (map_fixed_sum (fp, l, t1)); P (fp, l, t1) (map_fixed_sum (fp, l, t1)); map_fixed_graph (fp, l, t2) (map_fixed_sum (fp, l, t2)); P (fp, l, t2) (map_fixed_sum (fp, l, t2)); map_fixed_graph (fp, l, t3) (map_fixed_sum (fp, l, t3)); P (fp, l, t3) (map_fixed_sum (fp, l, t3))\<rbrakk> \<Longrightarrow> P (fp, l, Case t1 t2 t3) (Case (map_fixed_sum (fp, l, t1)) (map_fixed_sum (fp, l, t2)) (map_fixed_sum (fp, l, t3)))"   and "\<And>map_fixed_sum fp l t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Prj1 t) (Prj1 (map_fixed_sum (fp, l, t)))"   and "\<And>map_fixed_sum fp l t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Prj2 t) (Prj2 (map_fixed_sum (fp, l, t)))"   and "\<And>map_fixed_sum fp l t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Unroll t) (Unroll (map_fixed_sum (fp, l, t)))"   and "\<And>map_fixed_sum fp l t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Auth t) (Auth (map_fixed_sum (fp, l, t)))"   and "\<And>map_fixed_sum fp l t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Unauth t) (Unauth (map_fixed_sum (fp, l, t)))"   and "\<And>map_fixed_sum fp l h. P (fp, l, Hash h) (Hash h)"   and "\<And>map_fixed_sum fp l h t. \<lbrakk>map_fixed_graph (fp, l, t) (map_fixed_sum (fp, l, t)); P (fp, l, t) (map_fixed_sum (fp, l, t))\<rbrakk> \<Longrightarrow> P (fp, l, Hashed h t) (Hashed h (map_fixed_sum (fp, l, t)))" shows "P x1 x2"