src/HOL/Fun.thy
changeset 17589 58eeffd73be1
parent 17084 fb0a80aef0be
child 17877 67d5ab1cb0d8
equal deleted inserted replaced
17588:f2bd501398ee 17589:58eeffd73be1
   427 lemma inj_on_swap_iff [simp]:
   427 lemma inj_on_swap_iff [simp]:
   428   assumes A: "a \<in> A" "b \<in> A" shows "inj_on (swap a b f) A = inj_on f A"
   428   assumes A: "a \<in> A" "b \<in> A" shows "inj_on (swap a b f) A = inj_on f A"
   429 proof 
   429 proof 
   430   assume "inj_on (swap a b f) A"
   430   assume "inj_on (swap a b f) A"
   431   with A have "inj_on (swap a b (swap a b f)) A" 
   431   with A have "inj_on (swap a b (swap a b f)) A" 
   432     by (rules intro: inj_on_imp_inj_on_swap) 
   432     by (iprover intro: inj_on_imp_inj_on_swap) 
   433   thus "inj_on f A" by simp 
   433   thus "inj_on f A" by simp 
   434 next
   434 next
   435   assume "inj_on f A"
   435   assume "inj_on f A"
   436   with A show "inj_on (swap a b f) A" by (rules intro: inj_on_imp_inj_on_swap)
   436   with A show "inj_on (swap a b f) A" by (iprover intro: inj_on_imp_inj_on_swap)
   437 qed
   437 qed
   438 
   438 
   439 lemma surj_imp_surj_swap: "surj f ==> surj (swap a b f)"
   439 lemma surj_imp_surj_swap: "surj f ==> surj (swap a b f)"
   440 apply (simp add: surj_def swap_def, clarify)
   440 apply (simp add: surj_def swap_def, clarify)
   441 apply (rule_tac P = "y = f b" in case_split_thm, blast)
   441 apply (rule_tac P = "y = f b" in case_split_thm, blast)