src/HOL/Hilbert_Choice.thy
changeset 14399 dc677b35e54f
parent 14208 144f45277d5a
child 14760 a08e916f4946
     1.1 --- a/src/HOL/Hilbert_Choice.thy	Thu Feb 19 15:57:34 2004 +0100
     1.2 +++ b/src/HOL/Hilbert_Choice.thy	Thu Feb 19 16:44:21 2004 +0100
     1.3 @@ -51,6 +51,23 @@
     1.4  apply (fast intro: someI2)
     1.5  done
     1.6  
     1.7 +lemma Inv_f_eq:
     1.8 +  "[| inj_on f A; f x = y; x : A |] ==> Inv A f y = x"
     1.9 +  apply (erule subst)
    1.10 +  apply (erule Inv_f_f)
    1.11 +  apply assumption
    1.12 +  done
    1.13 +
    1.14 +lemma Inv_comp:
    1.15 +  "[| inj_on f (g ` A); inj_on g A; x : f ` g ` A |] ==>
    1.16 +  Inv A (f o g) x = (Inv A g o Inv (g ` A) f) x"
    1.17 +  apply simp
    1.18 +  apply (rule Inv_f_eq)
    1.19 +    apply (fast intro: comp_inj_on)
    1.20 +   apply (simp add: f_Inv_f Inv_mem)
    1.21 +  apply (simp add: Inv_mem)
    1.22 +  done
    1.23 +
    1.24  lemma tfl_some: "\<forall>P x. P x --> P (Eps P)"
    1.25    -- {* dynamically-scoped fact for TFL *}
    1.26    by (blast intro: someI)