# HG changeset patch # User Cezary Kaliszyk # Date 1268151935 -3600 # Node ID 5c6c950812b19b367e43887a0c9165035683a50f # Parent 34317cb033f23c64308eea76384df146915988bc All examples should work. diff -r 34317cb033f2 -r 5c6c950812b1 Nominal/Test.thy --- a/Nominal/Test.thy Tue Mar 09 17:02:29 2010 +0100 +++ b/Nominal/Test.thy Tue Mar 09 17:25:35 2010 +0100 @@ -380,6 +380,10 @@ typedecl ty --"hack since ty is not yet defined" +typedecl kind + +instance ty and kind:: pt +sorry abbreviation "atoms A \ atom ` A" @@ -417,18 +421,18 @@ VarP "name" | AppP "exp" "exp" | LamP x::"name" e::"exp" bind x in e -| LetP x::"name" p::"pat" e1::"exp" e2::"exp" bind x in e2, bind "bp p" in e1 -and pat = +| LetP x::"name" p::"pat3" e1::"exp" e2::"exp" bind x in e2, bind "bp p" in e1 +and pat3 = PVar "name" | PUnit -| PPair "pat" "pat" +| PPair "pat3" "pat3" binder - bp :: "pat \ atom set" + bp :: "pat3 \ atom set" where "bp (PVar x) = {atom x}" | "bp (PUnit) = {}" | "bp (PPair p1 p2) = bp p1 \ bp p2" -thm alpha_exp_raw_alpha_pat_raw.intros +thm alpha_exp_raw_alpha_pat3_raw.intros (* example 6 from Peter Sewell's bestiary *) nominal_datatype exp6 =