diff -r a44479bde681 -r 017e33849f4d Nominal/Ex/TypeSchemes2.thy --- a/Nominal/Ex/TypeSchemes2.thy Tue Mar 22 12:18:30 2016 +0000 +++ b/Nominal/Ex/TypeSchemes2.thy Thu Apr 19 13:57:17 2018 +0100 @@ -2,6 +2,7 @@ imports "../Nominal2" begin + section {*** Type Schemes defined as a single nominal datatype ***} atom_decl name @@ -60,14 +61,14 @@ shows "(p \ (Sum_Type.projl (f x))) = Sum_Type.projl (p \ (f x))" using a by clarsimp - + nominal_function (default "case_sum (\x. Inl undefined) (\x. Inr undefined)") subst :: "(name \ ty) list \ ty \ ty" and substs :: "(name \ ty) list \ tys \ tys" where "subst \ (Var X) = lookup \ X" | "subst \ (Fun T1 T2) = Fun (subst \ T1) (subst \ T2)" -| "fset (map_fset atom xs) \* \ \ substs \ (All xs T) = All xs (subst \ T)" +| "fset (atom |`| xs) \* \ \ substs \ (All xs T) = All xs (subst \ T)" thm subst_substs_graph_def subst_substs_graph_aux_def apply(simp add: subst_substs_graph_aux_def eqvt_def) apply(rule TrueI)