Quot/Nominal/Terms.thy
changeset 1183 cb3da5b540f2
parent 1181 788a59d2d7aa
equal deleted inserted replaced
1182:3c32f91fa771 1183:cb3da5b540f2
    23 primrec 
    23 primrec 
    24   bv1
    24   bv1
    25 where
    25 where
    26   "bv1 (BUnit) = {}"
    26   "bv1 (BUnit) = {}"
    27 | "bv1 (BVr x) = {atom x}"
    27 | "bv1 (BVr x) = {atom x}"
    28 | "bv1 (BPr bp1 bp2) = (bv1 bp1) \<union> (bv1 bp1)"
    28 | "bv1 (BPr bp1 bp2) = (bv1 bp1) \<union> (bv1 bp2)"
    29 
    29 
    30 local_setup {* define_raw_fv "Terms.rtrm1"
    30 local_setup {* define_raw_fv "Terms.rtrm1"
    31   [[[[]], [[], []], [[(NONE, 0)], [(NONE, 0)]], [[(NONE, 0)], [], [(SOME @{term bv1}, 0)]]],
    31   [[[[]], [[], []], [[(NONE, 0)], [(NONE, 0)]], [[(NONE, 0)], [], [(SOME @{term bv1}, 0)]]],
    32    [[], [[]], [[], []]]] *}
    32    [[], [[]], [[], []]]] *}
    33 print_theorems
    33 print_theorems
    56 
    56 
    57 (* Shouyld we derive it? But bv is given by the user? *)
    57 (* Shouyld we derive it? But bv is given by the user? *)
    58 lemma bv1_eqvt[eqvt]:
    58 lemma bv1_eqvt[eqvt]:
    59   shows "(pi \<bullet> bv1 x) = bv1 (pi \<bullet> x)"
    59   shows "(pi \<bullet> bv1 x) = bv1 (pi \<bullet> x)"
    60   apply (induct x)
    60   apply (induct x)
    61 apply (simp_all add: empty_eqvt insert_eqvt atom_eqvt)
    61 apply (simp_all add: empty_eqvt insert_eqvt atom_eqvt eqvts)
    62 done
    62 done
    63 
    63 
    64 lemma fv_rtrm1_eqvt[eqvt]:
    64 lemma fv_rtrm1_eqvt[eqvt]:
    65   shows "(pi\<bullet>fv_rtrm1 t) = fv_rtrm1 (pi\<bullet>t)"
    65   shows "(pi\<bullet>fv_rtrm1 t) = fv_rtrm1 (pi\<bullet>t)"
    66   apply (induct t)
    66   apply (induct t)