@@ -953,28 +953,8 @@ proof -
953953 apply ( auto simp : pat.Sb_cong restrict_def )
954954 apply ( rule trm.Sb_cong )
955955 apply ( auto simp : IImsupp_def SSupp_def restrict_def pat.set_bd_UNIV )
956- apply ( metis ( no_types , lifting ) card_of_subset_bound mem_Collect_eq subsetI trm.set_bd_UNIV ( 1 ))
957- apply ( metis ( no_types , lifting ) card_of_subset_bound mem_Collect_eq subsetI trm.set_bd_UNIV ( 2 ))
958- subgoal for x1 x2 x3
959- apply ( rule card_of_subset_bound [ of _ "PTVars x1 \<union> FTVars x2 \<union> FTVars x3" ])
960- apply blast
961- using pat.set_bd_UNIV trm.set_bd_UNIV infinite_class.Un_bound by meson
962- subgoal for x1 x2 x3
963- apply ( rule card_of_subset_bound [ of _ "FVars x2 \<union> FVars x3" ])
964- apply blast
965- using pat.set_bd_UNIV trm.set_bd_UNIV infinite_class.Un_bound by meson
966956 apply ( rule trm.Sb_cong )
967957 apply ( auto simp : IImsupp_def SSupp_def restrict_def pat.set_bd_UNIV )
968- apply ( metis ( no_types , lifting ) card_of_subset_bound mem_Collect_eq subsetI trm.set_bd_UNIV ( 1 ))
969- apply ( metis ( no_types , lifting ) card_of_subset_bound mem_Collect_eq subsetI trm.set_bd_UNIV ( 2 ))
970- subgoal for x1 x2 x3
971- apply ( rule card_of_subset_bound [ of _ "PTVars x1 \<union> FTVars x2 \<union> FTVars x3" ])
972- apply blast
973- using pat.set_bd_UNIV trm.set_bd_UNIV infinite_class.Un_bound by meson
974- subgoal for x1 x2 x3
975- apply ( rule card_of_subset_bound [ of _ "FVars x2 \<union> FVars x3" ])
976- apply blast
977- using pat.set_bd_UNIV trm.set_bd_UNIV infinite_class.Un_bound by meson
978958 by ( meson disjoint_iff_not_equal not_in_supp_alt )
979959qed
980960
@@ -1205,15 +1185,14 @@ binder_inductive step
12051185 apply ( auto )
12061186 apply ( subst tvsubst_comp )
12071187 apply ( auto simp : supp_def [ symmetric ] intro !: var_class.UN_bound )
1208- apply ( auto simp : ordLeq_ordLess_trans [ OF card_of_image ] pat.set_bd_UNIV )
12091188 apply ( rule trm.Sb_cong )
1210- apply ( auto simp : infinite_UNIV SSupp_trm_restrict restrict_def intro !: trm.SSupp_Sb_bound trm.IImsupp_Sb_bound )
1189+ apply ( auto simp : SSupp_trm_restrict restrict_def intro !: trm.SSupp_Sb_bound trm.IImsupp_Sb_bound )
12111190 apply ( subst trm.subst )
1212- apply ( auto simp : infinite_UNIV SSupp_trm_restrict restrict_def )
1191+ apply ( auto simp : SSupp_trm_restrict restrict_def )
12131192 apply ( subst trm.subst )
1214- apply ( auto simp : infinite_UNIV SSupp_trm_restrict restrict_def )
1193+ apply ( auto simp : SSupp_trm_restrict restrict_def )
12151194 done
1216- apply ( auto simp : infinite_UNIV intro !: trm.Un_bound trm.set_bd_UNIV )
1195+ apply ( auto intro !: trm.Un_bound trm.set_bd_UNIV )
12171196 done
12181197 subgoal for VV l v
12191198 by auto
@@ -1540,21 +1519,16 @@ next
15401519 apply ( subst ( asm ) tvsubst_comp )
15411520 apply ( auto 0 0 intro !: cmin_greater ) [ 3 ]
15421521 apply ( metis Int_bound2 PVars_PRec SSupp_trm_restrict nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ))
1543- apply ( metis Int_bound2 PVars_PRec SSupp_trm_restrict nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ))
1544- apply auto
1545- apply ( metis PVars_PRec nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ))
1522+ apply ( auto simp : IImsupp_restrict_bound )
15461523 apply ( erule arg_cong [ where f = "\<lambda>t. typing _ t _" , THEN iffD1 , rotated ])
15471524 apply ( rule trm.Sb_cong )
15481525 apply ( auto 0 0 intro !: trm.SSupp_Sb_bound trm.IImsupp_Sb_bound pat.set_bd_UNIV ) [ 5 ]
1549- apply ( metis PVars_PRec nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ))+
15501526 apply ( metis IImsupp_restrict_bound PVars_PRec pat.set_bd_UNIV ( 2 ) trm.set_bd_UNIV ( 1 ))
15511527 apply ( rule refl )
15521528 apply ( auto simp : restrict_def nonrep_PRec_def values_lfin_iff )
15531529 subgoal for x P' l'
15541530 apply ( rule trans [ OF trm.Sb_cong ( 1 ) tvsubst_id ])
15551531 apply ( auto 0 0 simp : restrict_def intro !: cmin_greater )
1556- apply ( metis Int_bound2 PVars_PRec SSupp_trm_restrict nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ) prems ( 6 ))
1557- apply ( metis Int_bound2 PVars_PRec SSupp_trm_restrict nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ) prems ( 6 ))
15581532 apply ( cases "l = l'" )
15591533 apply simp
15601534 using match_FVars [ of \<sigma> P v x ]
@@ -1563,21 +1537,15 @@ next
15631537 done
15641538 subgoal for x P' l'
15651539 apply ( subst trm.subst )
1566- apply ( auto 0 0 ) [ 2 ]
1567- apply ( metis Int_bound2 PVars_PRec SSupp_trm_restrict nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ) prems ( 6 ))
1568- apply ( metis IImsupp_restrict_bound PVars_PRec nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ) prems ( 6 )
1569- trm.set_bd_UNIV ( 1 ))
1540+ apply ( auto 0 0 ) [ 3 ]
15701541 apply ( auto simp : restrict_def )
15711542 apply ( cases "l = l'" )
15721543 apply ( metis lfin_label_inject )
15731544 apply ( meson lfin_lfdeleteI values_lfin_iff )
15741545 done
15751546 subgoal for x
15761547 apply ( subst trm.subst )
1577- apply ( auto 0 0 ) [ 2 ]
1578- apply ( metis Int_bound2 PVars_PRec SSupp_trm_restrict nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ) prems ( 6 ))
1579- apply ( metis IImsupp_restrict_bound PVars_PRec nonrep_PRec_lfdelete pat.set_bd_UNIV ( 2 ) prems ( 6 )
1580- trm.set_bd_UNIV ( 1 ))
1548+ apply ( auto 0 0 ) [ 3 ]
15811549 apply ( auto simp : restrict_def )
15821550 apply ( metis lfin_lfdelete values_lfin_iff )
15831551 done
0 commit comments