Nominal/Ex/SingleLet.thy
changeset 2028 15c5a2926622
parent 2024 d974059827ad
child 2064 2725853f43b9
equal deleted inserted replaced
2027:68b2d2d7b4ed 2028:15c5a2926622
     1 theory SingleLet
     1 theory SingleLet
     2 imports "../NewParser"
     2 imports "../NewParser"
     3 begin
     3 begin
     4 
     4 
     5 atom_decl name
     5 atom_decl name
     6 
       
     7 ML {* val _ = cheat_alpha_eqvt := true *}
       
     8 
     6 
     9 nominal_datatype trm =
     7 nominal_datatype trm =
    10   Var "name"
     8   Var "name"
    11 | App "trm" "trm"
     9 | App "trm" "trm"
    12 | Lam x::"name" t::"trm"  bind_set x in t
    10 | Lam x::"name" t::"trm"  bind_set x in t
    16 binder
    14 binder
    17   bn::"assg \<Rightarrow> atom set"
    15   bn::"assg \<Rightarrow> atom set"
    18 where
    16 where
    19   "bn (As x t) = {atom x}"
    17   "bn (As x t) = {atom x}"
    20 
    18 
    21 thm alpha_trm_raw_alpha_assg_raw_alpha_bn_raw.intros[no_vars]
       
    22 thm trm_assg.fv
    19 thm trm_assg.fv
    23 thm trm_assg.supp
    20 thm trm_assg.supp
    24 thm trm_assg.eq_iff
    21 thm trm_assg.eq_iff
    25 thm trm_assg.bn
    22 thm trm_assg.bn
    26 thm trm_assg.perm
    23 thm trm_assg.perm
    28 thm trm_assg.inducts
    25 thm trm_assg.inducts
    29 thm trm_assg.distinct
    26 thm trm_assg.distinct
    30 ML {* Sign.of_sort @{theory} (@{typ trm}, @{sort fs}) *}
    27 ML {* Sign.of_sort @{theory} (@{typ trm}, @{sort fs}) *}
    31 thm trm_assg.fv[simplified trm_assg.supp(1-2)]
    28 thm trm_assg.fv[simplified trm_assg.supp(1-2)]
    32 
    29 
       
    30 (*
    33 setup {* Context.theory_map (Nominal_ThmDecls.add_thm @{thm "permute_pure"}) *}
    31 setup {* Context.theory_map (Nominal_ThmDecls.add_thm @{thm "permute_pure"}) *}
    34 declare permute_trm_raw_permute_assg_raw.simps[eqvt]
    32 declare permute_trm_raw_permute_assg_raw.simps[eqvt]
    35 declare alpha_gen_eqvt[eqvt]
    33 declare alpha_gen_eqvt[eqvt]
    36 equivariance alpha_trm_raw
    34 equivariance alpha_trm_raw
    37 
    35 *)
    38 
    36 
    39 end
    37 end
    40 
    38 
    41 
    39 
    42 
    40