# HG changeset patch # User paulson # Date 893677666 -7200 # Node ID aa5ea943f8e397e613ea3467ac33ef66dded86c5 # Parent ee3317896a4734ccd5062f5b54ea7a03ba473b89 New proof of apply_equality and new thm Pi_image_cons diff -r ee3317896a47 -r aa5ea943f8e3 src/ZF/func.ML --- a/src/ZF/func.ML Fri Apr 24 16:18:39 1998 +0200 +++ b/src/ZF/func.ML Mon Apr 27 13:47:46 1998 +0200 @@ -75,10 +75,13 @@ by (Blast_tac 1); qed "apply_equality2"; -goalw ZF.thy [apply_def] "!!a b f. [| : f; f: Pi(A,B) |] ==> f`a = b"; -by (rtac the_equality 1); -by (rtac apply_equality2 2); -by (REPEAT (assume_tac 1)); +goalw ZF.thy [apply_def, function_def] + "!!a b f. [| : f; function(f) |] ==> f`a = b"; +by (blast_tac (claset() addIs [the_equality]) 1); +qed "function_apply_equality"; + +goalw ZF.thy [Pi_def] "!!a b f. [| : f; f: Pi(A,B) |] ==> f`a = b"; +by (blast_tac (claset() addIs [function_apply_equality]) 1); qed "apply_equality"; (*Applying a function outside its domain yields 0*) @@ -250,6 +253,10 @@ addcongs [RepFun_cong]) 1); qed "image_fun"; +goal thy "!!f. [| f: Pi(A,B); x: A |] ==> f `` cons(x,y) = cons(f`x, f``y)"; +by (blast_tac (claset() addDs [apply_equality, apply_Pair]) 1); +qed "Pi_image_cons"; + (*** properties of "restrict" ***)