equal
deleted
inserted
replaced
3243 proof (nominal_induct B rule: ty.strong_induct) |
3243 proof (nominal_induct B rule: ty.strong_induct) |
3244 case (PR X) |
3244 case (PR X) |
3245 { case 1 show ?case |
3245 { case 1 show ?case |
3246 apply - |
3246 apply - |
3247 apply(simp add: lfp_eqvt) |
3247 apply(simp add: lfp_eqvt) |
3248 apply(simp add: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3248 apply(simp add: perm_fun_def [where 'a="ntrm set"]) |
3249 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
3249 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
3250 apply(perm_simp) |
3250 apply(perm_simp) |
3251 done |
3251 done |
3252 next |
3252 next |
3253 case 2 show ?case |
3253 case 2 show ?case |
3254 apply - |
3254 apply - |
3255 apply(simp only: NEGc_simps) |
3255 apply(simp only: NEGc_simps) |
3256 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
3256 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
3257 apply(simp add: lfp_eqvt) |
3257 apply(simp add: lfp_eqvt) |
3258 apply(simp add: comp_def) |
3258 apply(simp add: comp_def) |
3259 apply(simp add: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3259 apply(simp add: perm_fun_def [where 'a="ntrm set"]) |
3260 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
3260 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
3261 apply(perm_simp) |
3261 apply(perm_simp) |
3262 done |
3262 done |
3263 } |
3263 } |
3264 next |
3264 next |
3267 have ih2: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3267 have ih2: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3268 have g: "pi\<bullet>(\<parallel>(NOT B)\<parallel>) = (\<parallel>(NOT B)\<parallel>)" |
3268 have g: "pi\<bullet>(\<parallel>(NOT B)\<parallel>) = (\<parallel>(NOT B)\<parallel>)" |
3269 apply - |
3269 apply - |
3270 apply(simp only: lfp_eqvt) |
3270 apply(simp only: lfp_eqvt) |
3271 apply(simp only: comp_def) |
3271 apply(simp only: comp_def) |
3272 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3272 apply(simp only: perm_fun_def [where 'a="ntrm set"]) |
3273 apply(simp only: NEGc.simps NEGn.simps) |
3273 apply(simp only: NEGc.simps NEGn.simps) |
3274 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name NOTRIGHT_eqvt_name NOTLEFT_eqvt_name) |
3274 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name NOTRIGHT_eqvt_name NOTLEFT_eqvt_name) |
3275 apply(perm_simp add: ih1 ih2) |
3275 apply(perm_simp add: ih1 ih2) |
3276 done |
3276 done |
3277 { case 1 show ?case by (rule g) |
3277 { case 1 show ?case by (rule g) |
3287 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3287 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3288 have g: "pi\<bullet>(\<parallel>(A AND B)\<parallel>) = (\<parallel>(A AND B)\<parallel>)" |
3288 have g: "pi\<bullet>(\<parallel>(A AND B)\<parallel>) = (\<parallel>(A AND B)\<parallel>)" |
3289 apply - |
3289 apply - |
3290 apply(simp only: lfp_eqvt) |
3290 apply(simp only: lfp_eqvt) |
3291 apply(simp only: comp_def) |
3291 apply(simp only: comp_def) |
3292 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3292 apply(simp only: perm_fun_def [where 'a="ntrm set"]) |
3293 apply(simp only: NEGc.simps NEGn.simps) |
3293 apply(simp only: NEGc.simps NEGn.simps) |
3294 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name ANDRIGHT_eqvt_name |
3294 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name ANDRIGHT_eqvt_name |
3295 ANDLEFT2_eqvt_name ANDLEFT1_eqvt_name) |
3295 ANDLEFT2_eqvt_name ANDLEFT1_eqvt_name) |
3296 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3296 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3297 done |
3297 done |
3309 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3309 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3310 have g: "pi\<bullet>(\<parallel>(A OR B)\<parallel>) = (\<parallel>(A OR B)\<parallel>)" |
3310 have g: "pi\<bullet>(\<parallel>(A OR B)\<parallel>) = (\<parallel>(A OR B)\<parallel>)" |
3311 apply - |
3311 apply - |
3312 apply(simp only: lfp_eqvt) |
3312 apply(simp only: lfp_eqvt) |
3313 apply(simp only: comp_def) |
3313 apply(simp only: comp_def) |
3314 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3314 apply(simp only: perm_fun_def [where 'a="ntrm set"]) |
3315 apply(simp only: NEGc.simps NEGn.simps) |
3315 apply(simp only: NEGc.simps NEGn.simps) |
3316 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name ORRIGHT1_eqvt_name |
3316 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name ORRIGHT1_eqvt_name |
3317 ORRIGHT2_eqvt_name ORLEFT_eqvt_name) |
3317 ORRIGHT2_eqvt_name ORLEFT_eqvt_name) |
3318 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3318 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3319 done |
3319 done |
3331 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3331 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3332 have g: "pi\<bullet>(\<parallel>(A IMP B)\<parallel>) = (\<parallel>(A IMP B)\<parallel>)" |
3332 have g: "pi\<bullet>(\<parallel>(A IMP B)\<parallel>) = (\<parallel>(A IMP B)\<parallel>)" |
3333 apply - |
3333 apply - |
3334 apply(simp only: lfp_eqvt) |
3334 apply(simp only: lfp_eqvt) |
3335 apply(simp only: comp_def) |
3335 apply(simp only: comp_def) |
3336 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3336 apply(simp only: perm_fun_def [where 'a="ntrm set"]) |
3337 apply(simp only: NEGc.simps NEGn.simps) |
3337 apply(simp only: NEGc.simps NEGn.simps) |
3338 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name IMPRIGHT_eqvt_name IMPLEFT_eqvt_name) |
3338 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name IMPRIGHT_eqvt_name IMPLEFT_eqvt_name) |
3339 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3339 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3340 done |
3340 done |
3341 { case 1 show ?case by (rule g) |
3341 { case 1 show ?case by (rule g) |
3353 proof (nominal_induct B rule: ty.strong_induct) |
3353 proof (nominal_induct B rule: ty.strong_induct) |
3354 case (PR X) |
3354 case (PR X) |
3355 { case 1 show ?case |
3355 { case 1 show ?case |
3356 apply - |
3356 apply - |
3357 apply(simp add: lfp_eqvt) |
3357 apply(simp add: lfp_eqvt) |
3358 apply(simp add: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3358 apply(simp add: perm_fun_def [where 'a="ntrm set"]) |
3359 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
3359 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
3360 apply(perm_simp) |
3360 apply(perm_simp) |
3361 done |
3361 done |
3362 next |
3362 next |
3363 case 2 show ?case |
3363 case 2 show ?case |
3364 apply - |
3364 apply - |
3365 apply(simp only: NEGc_simps) |
3365 apply(simp only: NEGc_simps) |
3366 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
3366 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
3367 apply(simp add: lfp_eqvt) |
3367 apply(simp add: lfp_eqvt) |
3368 apply(simp add: comp_def) |
3368 apply(simp add: comp_def) |
3369 apply(simp add: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3369 apply(simp add: perm_fun_def [where 'a="ntrm set"]) |
3370 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
3370 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
3371 apply(perm_simp) |
3371 apply(perm_simp) |
3372 done |
3372 done |
3373 } |
3373 } |
3374 next |
3374 next |
3377 have ih2: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3377 have ih2: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3378 have g: "pi\<bullet>(\<parallel>(NOT B)\<parallel>) = (\<parallel>(NOT B)\<parallel>)" |
3378 have g: "pi\<bullet>(\<parallel>(NOT B)\<parallel>) = (\<parallel>(NOT B)\<parallel>)" |
3379 apply - |
3379 apply - |
3380 apply(simp only: lfp_eqvt) |
3380 apply(simp only: lfp_eqvt) |
3381 apply(simp only: comp_def) |
3381 apply(simp only: comp_def) |
3382 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3382 apply(simp only: perm_fun_def [where 'a="ntrm set"]) |
3383 apply(simp only: NEGc.simps NEGn.simps) |
3383 apply(simp only: NEGc.simps NEGn.simps) |
3384 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname |
3384 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname |
3385 NOTRIGHT_eqvt_coname NOTLEFT_eqvt_coname) |
3385 NOTRIGHT_eqvt_coname NOTLEFT_eqvt_coname) |
3386 apply(perm_simp add: ih1 ih2) |
3386 apply(perm_simp add: ih1 ih2) |
3387 done |
3387 done |
3399 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3399 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3400 have g: "pi\<bullet>(\<parallel>(A AND B)\<parallel>) = (\<parallel>(A AND B)\<parallel>)" |
3400 have g: "pi\<bullet>(\<parallel>(A AND B)\<parallel>) = (\<parallel>(A AND B)\<parallel>)" |
3401 apply - |
3401 apply - |
3402 apply(simp only: lfp_eqvt) |
3402 apply(simp only: lfp_eqvt) |
3403 apply(simp only: comp_def) |
3403 apply(simp only: comp_def) |
3404 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3404 apply(simp only: perm_fun_def [where 'a="ntrm set"]) |
3405 apply(simp only: NEGc.simps NEGn.simps) |
3405 apply(simp only: NEGc.simps NEGn.simps) |
3406 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname ANDRIGHT_eqvt_coname |
3406 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname ANDRIGHT_eqvt_coname |
3407 ANDLEFT2_eqvt_coname ANDLEFT1_eqvt_coname) |
3407 ANDLEFT2_eqvt_coname ANDLEFT1_eqvt_coname) |
3408 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3408 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3409 done |
3409 done |
3421 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3421 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3422 have g: "pi\<bullet>(\<parallel>(A OR B)\<parallel>) = (\<parallel>(A OR B)\<parallel>)" |
3422 have g: "pi\<bullet>(\<parallel>(A OR B)\<parallel>) = (\<parallel>(A OR B)\<parallel>)" |
3423 apply - |
3423 apply - |
3424 apply(simp only: lfp_eqvt) |
3424 apply(simp only: lfp_eqvt) |
3425 apply(simp only: comp_def) |
3425 apply(simp only: comp_def) |
3426 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3426 apply(simp only: perm_fun_def [where 'a="ntrm set"]) |
3427 apply(simp only: NEGc.simps NEGn.simps) |
3427 apply(simp only: NEGc.simps NEGn.simps) |
3428 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname ORRIGHT1_eqvt_coname |
3428 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname ORRIGHT1_eqvt_coname |
3429 ORRIGHT2_eqvt_coname ORLEFT_eqvt_coname) |
3429 ORRIGHT2_eqvt_coname ORLEFT_eqvt_coname) |
3430 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3430 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3431 done |
3431 done |
3443 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3443 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
3444 have g: "pi\<bullet>(\<parallel>(A IMP B)\<parallel>) = (\<parallel>(A IMP B)\<parallel>)" |
3444 have g: "pi\<bullet>(\<parallel>(A IMP B)\<parallel>) = (\<parallel>(A IMP B)\<parallel>)" |
3445 apply - |
3445 apply - |
3446 apply(simp only: lfp_eqvt) |
3446 apply(simp only: lfp_eqvt) |
3447 apply(simp only: comp_def) |
3447 apply(simp only: comp_def) |
3448 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
3448 apply(simp only: perm_fun_def [where 'a="ntrm set"]) |
3449 apply(simp only: NEGc.simps NEGn.simps) |
3449 apply(simp only: NEGc.simps NEGn.simps) |
3450 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname IMPRIGHT_eqvt_coname |
3450 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname IMPRIGHT_eqvt_coname |
3451 IMPLEFT_eqvt_coname) |
3451 IMPLEFT_eqvt_coname) |
3452 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3452 apply(perm_simp add: ih1 ih2 ih3 ih4) |
3453 done |
3453 done |