equal
deleted
inserted
replaced
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) |