src/ZF/Resid/Substitution.ML
changeset 7499 23e090051cb8
parent 6112 5e4871c5136b
child 8201 a81d18b0a9b1
equal deleted inserted replaced
7498:1e5585fd3632 7499:23e090051cb8
   129 \       (lift_rec(lift_rec(u,i),succ(n)) = lift_rec(lift_rec(u,n),i))";
   129 \       (lift_rec(lift_rec(u,i),succ(n)) = lift_rec(lift_rec(u,n),i))";
   130 by (etac redexes.induct 1);
   130 by (etac redexes.induct 1);
   131 by (ALLGOALS Asm_simp_tac);
   131 by (ALLGOALS Asm_simp_tac);
   132 by Safe_tac;
   132 by Safe_tac;
   133 by (case_tac "n < xa" 1);
   133 by (case_tac "n < xa" 1);
   134 by ((forward_tac [lt_trans2] 1) THEN (assume_tac 1));
   134 by ((ftac lt_trans2 1) THEN (assume_tac 1));
   135 by (ALLGOALS (asm_full_simp_tac (simpset() addsimps [lift_rec_Var, leI])));
   135 by (ALLGOALS (asm_full_simp_tac (simpset() addsimps [lift_rec_Var, leI])));
   136 qed "lift_lift_rec";
   136 qed "lift_lift_rec";
   137 
   137 
   138 Goal "[|u:redexes; n:nat|] ==>  \
   138 Goal "[|u:redexes; n:nat|] ==>  \
   139 \      lift_rec(lift(u),succ(n)) = lift(lift_rec(u,n))";
   139 \      lift_rec(lift(u),succ(n)) = lift(lift_rec(u,n))";
   174     THEN ALLGOALS(asm_simp_tac (simpset() addsimps [lift_lift])));
   174     THEN ALLGOALS(asm_simp_tac (simpset() addsimps [lift_lift])));
   175 by Safe_tac;
   175 by Safe_tac;
   176 by (excluded_middle_tac "n < x" 1);
   176 by (excluded_middle_tac "n < x" 1);
   177 by (Asm_full_simp_tac 1);
   177 by (Asm_full_simp_tac 1);
   178 by (eres_inst_tac [("i","x")] leE 1);
   178 by (eres_inst_tac [("i","x")] leE 1);
   179 by (forward_tac  [lt_trans1] 1 THEN assume_tac 1);
   179 by (ftac lt_trans1 1 THEN assume_tac 1);
   180 by (ALLGOALS(asm_simp_tac 
   180 by (ALLGOALS(asm_simp_tac 
   181              (simpset() addsimps [succ_pred,leI,gt_pred])));
   181              (simpset() addsimps [succ_pred,leI,gt_pred])));
   182 by (asm_full_simp_tac (simpset() addsimps [leI]) 1);
   182 by (asm_full_simp_tac (simpset() addsimps [leI]) 1);
   183 by (case_tac "n < xa" 1);
   183 by (case_tac "n < xa" 1);
   184 by (Asm_full_simp_tac 2);
   184 by (Asm_full_simp_tac 2);
   216 by (excluded_middle_tac "n < x" 1);
   216 by (excluded_middle_tac "n < x" 1);
   217 by (Asm_full_simp_tac 1);
   217 by (Asm_full_simp_tac 1);
   218 by (eres_inst_tac [("j","n")] leE 1);
   218 by (eres_inst_tac [("j","n")] leE 1);
   219 by (asm_simp_tac (simpset() addsimps [gt_pred]) 1);
   219 by (asm_simp_tac (simpset() addsimps [gt_pred]) 1);
   220 by (asm_simp_tac (simpset() addsimps [subst_rec_lift_rec]) 1);
   220 by (asm_simp_tac (simpset() addsimps [subst_rec_lift_rec]) 1);
   221 by (forward_tac [lt_trans2] 1 THEN assume_tac 1);
   221 by (ftac lt_trans2 1 THEN assume_tac 1);
   222 by (asm_simp_tac (simpset() addsimps [gt_pred]) 1);
   222 by (asm_simp_tac (simpset() addsimps [gt_pred]) 1);
   223 qed "subst_rec_subst_rec";
   223 qed "subst_rec_subst_rec";
   224 
   224 
   225 
   225 
   226 Goal "[|v:redexes; u:redexes; w:redexes; n:nat|] ==>  \
   226 Goal "[|v:redexes; u:redexes; w:redexes; n:nat|] ==>  \