equal
deleted
inserted
replaced
237 fixes a :: "'x" |
237 fixes a :: "'x" |
238 and x :: "'a" |
238 and x :: "'a" |
239 shows "a\<sharp>(Some x) = a\<sharp>x" |
239 shows "a\<sharp>(Some x) = a\<sharp>x" |
240 apply(simp add: fresh_def supp_some) |
240 apply(simp add: fresh_def supp_some) |
241 done |
241 done |
|
242 |
|
243 |
|
244 text {* Normalization of freshness results; cf.\ @{text nominal_induct} *} |
|
245 |
|
246 lemma fresh_unit_elim: "(a\<sharp>() \<Longrightarrow> PROP C) == PROP C" |
|
247 by (simp add: fresh_def supp_unit) |
|
248 |
|
249 lemma fresh_prod_elim: "(a\<sharp>(x,y) \<Longrightarrow> PROP C) == (a\<sharp>x \<Longrightarrow> a\<sharp>y \<Longrightarrow> PROP C)" |
|
250 by rule (simp_all add: fresh_prod) |
242 |
251 |
243 |
252 |
244 section {* Abstract Properties for Permutations and Atoms *} |
253 section {* Abstract Properties for Permutations and Atoms *} |
245 (*=========================================================*) |
254 (*=========================================================*) |
246 |
255 |
2579 use "nominal_package.ML" |
2588 use "nominal_package.ML" |
2580 setup "NominalAtoms.setup" |
2589 setup "NominalAtoms.setup" |
2581 |
2590 |
2582 (*****************************************) |
2591 (*****************************************) |
2583 (* setup for induction principles method *) |
2592 (* setup for induction principles method *) |
|
2593 |
2584 use "nominal_induct.ML"; |
2594 use "nominal_induct.ML"; |
2585 method_setup nominal_induct = |
2595 method_setup nominal_induct = |
2586 {* nominal_induct_method *} |
2596 {* NominalInduct.nominal_induct_method *} |
2587 {* nominal induction *} |
2597 {* nominal induction *} |
2588 |
2598 |
2589 (*******************************) |
2599 (*******************************) |
2590 (* permutation equality tactic *) |
2600 (* permutation equality tactic *) |
2591 use "nominal_permeq.ML"; |
2601 use "nominal_permeq.ML"; |
2605 method_setup supports_simp_debug = |
2615 method_setup supports_simp_debug = |
2606 {* supports_meth_debug *} |
2616 {* supports_meth_debug *} |
2607 {* tactic for deciding equalities involving permutations including debuging facilities *} |
2617 {* tactic for deciding equalities involving permutations including debuging facilities *} |
2608 |
2618 |
2609 end |
2619 end |
2610 |
|
2611 |
|