src/HOL/UNITY/Extend.ML
changeset 6834 44da4a2a9ef3
parent 6822 8932f33259d4
child 7341 d15bfea7c943
equal deleted inserted replaced
6833:15d6c121d75f 6834:44da4a2a9ef3
    64 qed "extend_set_Int_distrib";
    64 qed "extend_set_Int_distrib";
    65 
    65 
    66 Goalw [extend_set_def]
    66 Goalw [extend_set_def]
    67     "extend_set h (INTER A B) = (INT x:A. extend_set h (B x))";
    67     "extend_set h (INTER A B) = (INT x:A. extend_set h (B x))";
    68 by (force_tac (claset() addIs  [h_f_g_eq RS sym], simpset()) 1);
    68 by (force_tac (claset() addIs  [h_f_g_eq RS sym], simpset()) 1);
    69 qed "extend_set_INTER_distrib";
    69 qed "extend_set_INT_distrib";
    70 
    70 
    71 Goalw [extend_set_def]
    71 Goalw [extend_set_def]
    72     "extend_set h (A - B) = extend_set h A - extend_set h B";
    72     "extend_set h (A - B) = extend_set h A - extend_set h B";
    73 by Auto_tac;
    73 by Auto_tac;
    74 qed "extend_set_Diff_distrib";
    74 qed "extend_set_Diff_distrib";
   176 qed "extend_Join";
   176 qed "extend_Join";
   177 Addsimps [extend_Join];
   177 Addsimps [extend_Join];
   178 
   178 
   179 Goal "extend h (JOIN I F) = (JN i:I. extend h (F i))";
   179 Goal "extend h (JOIN I F) = (JN i:I. extend h (F i))";
   180 by (rtac program_equalityI 1);
   180 by (rtac program_equalityI 1);
   181 by (simp_tac (simpset() addsimps [image_UNION, Acts_JN]) 2);
   181 by (simp_tac (simpset() addsimps [image_UN, Acts_JN]) 2);
   182 by (simp_tac (simpset() addsimps [extend_set_INTER_distrib]) 1);
   182 by (simp_tac (simpset() addsimps [extend_set_INT_distrib]) 1);
   183 qed "extend_JN";
   183 qed "extend_JN";
   184 Addsimps [extend_JN];
   184 Addsimps [extend_JN];
   185 
   185 
   186 
   186 
   187 (*** Safety: co, stable ***)
   187 (*** Safety: co, stable ***)