# HG changeset patch # User lcp # Date 777056983 -7200 # Node ID 5fbfa997f1b03c3cc8164bdd08248feed5993ea7 # Parent 9d62c7e0869953c9089c6e8ddb6f51500a26ddfc ZF/domrange/domain_of_prod, domain_empty, etc: moved to equalities.ML where they can be proved trivially using eq_cs ZF/domrange/XXX_empty: renamed XXX_0 diff -r 9d62c7e08699 -r 5fbfa997f1b0 src/ZF/domrange.ML --- a/src/ZF/domrange.ML Tue Aug 16 19:06:14 1994 +0200 +++ b/src/ZF/domrange.ML Tue Aug 16 19:09:43 1994 +0200 @@ -57,21 +57,8 @@ [ (rtac (domain_iff RS iffD1 RS exE) 1), (REPEAT (ares_tac prems 1)) ]); -val domain_of_prod = prove_goal ZF.thy "!!A B. b:B ==> domain(A*B) = A" - (fn _ => - [ (REPEAT (eresolve_tac [domainE,SigmaE2] 1 - ORELSE ares_tac [domainI,equalityI,subsetI,SigmaI] 1)) ]); - -val domain_empty = prove_goal ZF.thy "domain(0) = 0" - (fn _ => - [ (REPEAT (eresolve_tac [domainE,emptyE] 1 - ORELSE ares_tac [equalityI,subsetI] 1)) ]); - val domain_subset = prove_goal ZF.thy "domain(Sigma(A,B)) <= A" - (fn _ => - [ (rtac subsetI 1), - (etac domainE 1), - (etac SigmaD1 1) ]); + (fn _ => [ (rtac subsetI 1), (etac domainE 1), (etac SigmaD1 1) ]); (*** range ***) @@ -86,17 +73,6 @@ (resolve_tac prems 1), (etac converseD 1) ]); -val range_of_prod = prove_goalw ZF.thy [range_def] - "!!a A B. a:A ==> range(A*B) = B" - (fn _ => - [ (rtac (converse_of_prod RS ssubst) 1), - (etac domain_of_prod 1) ]); - -val range_empty = prove_goalw ZF.thy [range_def] "range(0) = 0" - (fn _ => - [ (rtac (converse_empty RS ssubst) 1), - (rtac domain_empty 1) ]); - val range_subset = prove_goalw ZF.thy [range_def] "range(A*B) <= B" (fn _ => [ (rtac (converse_of_prod RS ssubst) 1), @@ -128,10 +104,6 @@ [ (rtac (major RS UnE) 1), (REPEAT (eresolve_tac (prems@[domainE,rangeE]) 1)) ]); -val field_of_prod = prove_goal ZF.thy "field(A*A) = A" - (fn _ => - [ (fast_tac (pair_cs addIs [fieldCI,equalityI] addSEs [fieldE]) 1) ]); - val field_subset = prove_goal ZF.thy "field(A*B) <= A Un B" (fn _ => [ (fast_tac (pair_cs addIs [fieldCI] addSEs [fieldE]) 1) ]); diff -r 9d62c7e08699 -r 5fbfa997f1b0 src/ZF/equalities.ML --- a/src/ZF/equalities.ML Tue Aug 16 19:06:14 1994 +0200 +++ b/src/ZF/equalities.ML Tue Aug 16 19:09:43 1994 +0200 @@ -296,7 +296,17 @@ by (fast_tac eq_cs 1); val SUM_eq_UN = result(); -(** Domain, Range and Field **) +(** Domain **) + +val domain_of_prod = prove_goal ZF.thy "!!A B. b:B ==> domain(A*B) = A" + (fn _ => [ fast_tac eq_cs 1 ]); + +val domain_0 = prove_goal ZF.thy "domain(0) = 0" + (fn _ => [ fast_tac eq_cs 1 ]); + +val domain_cons = prove_goal ZF.thy + "domain(cons(,r)) = cons(a, domain(r))" + (fn _ => [ fast_tac eq_cs 1 ]); goal ZF.thy "domain(A Un B) = domain(A) Un domain(B)"; by (fast_tac eq_cs 1); @@ -310,6 +320,19 @@ by (fast_tac eq_cs 1); val domain_diff_subset = result(); +(** Range **) + +val range_of_prod = prove_goal ZF.thy + "!!a A B. a:A ==> range(A*B) = B" + (fn _ => [ fast_tac eq_cs 1 ]); + +val range_0 = prove_goal ZF.thy "range(0) = 0" + (fn _ => [ fast_tac eq_cs 1 ]); + +val range_cons = prove_goal ZF.thy + "range(cons(,r)) = cons(b, range(r))" + (fn _ => [ fast_tac eq_cs 1 ]); + goal ZF.thy "range(A Un B) = range(A) Un range(B)"; by (fast_tac eq_cs 1); val range_Un_eq = result(); @@ -322,6 +345,18 @@ by (fast_tac eq_cs 1); val range_diff_subset = result(); +(** Field **) + +val field_of_prod = prove_goal ZF.thy "field(A*A) = A" + (fn _ => [ fast_tac eq_cs 1 ]); + +val field_0 = prove_goal ZF.thy "field(0) = 0" + (fn _ => [ fast_tac eq_cs 1 ]); + +val field_cons = prove_goal ZF.thy + "field(cons(,r)) = cons(a, cons(b, field(r)))" + (fn _ => [ rtac equalityI 1, ALLGOALS (fast_tac ZF_cs) ]); + goal ZF.thy "field(A Un B) = field(A) Un field(B)"; by (fast_tac eq_cs 1); val field_Un_eq = result(); @@ -339,7 +374,7 @@ goal ZF.thy "r``0 = 0"; by (fast_tac eq_cs 1); -val image_empty = result(); +val image_0 = result(); goal ZF.thy "r``(A Un B) = (r``A) Un (r``B)"; by (fast_tac eq_cs 1); @@ -362,7 +397,7 @@ goal ZF.thy "r-``0 = 0"; by (fast_tac eq_cs 1); -val vimage_empty = result(); +val vimage_0 = result(); goal ZF.thy "r-``(A Un B) = (r-``A) Un (r-``B)"; by (fast_tac eq_cs 1);