src/ZF/pair.thy
changeset 42456 13b4b6ba3593
parent 42455 6702c984bf5a
child 42459 38b9f023cc34
equal deleted inserted replaced
42455:6702c984bf5a 42456:13b4b6ba3593
    13 simproc_setup defined_Bex ("EX x:A. P(x) & Q(x)") = {*
    13 simproc_setup defined_Bex ("EX x:A. P(x) & Q(x)") = {*
    14   let
    14   let
    15     val unfold_bex_tac = unfold_tac @{thms Bex_def};
    15     val unfold_bex_tac = unfold_tac @{thms Bex_def};
    16     fun prove_bex_tac ss = unfold_bex_tac ss THEN Quantifier1.prove_one_point_ex_tac;
    16     fun prove_bex_tac ss = unfold_bex_tac ss THEN Quantifier1.prove_one_point_ex_tac;
    17   in
    17   in
    18     fn _ => fn ss => fn ct =>
    18     fn _ => fn ss => Quantifier1.rearrange_bex (prove_bex_tac ss) ss o term_of
    19       Quantifier1.rearrange_bex prove_bex_tac (theory_of_cterm ct) ss (term_of ct)
       
    20   end
    19   end
    21 *}
    20 *}
    22 
    21 
    23 simproc_setup defined_Ball ("ALL x:A. P(x) --> Q(x)") = {*
    22 simproc_setup defined_Ball ("ALL x:A. P(x) --> Q(x)") = {*
    24   let
    23   let
    25     val unfold_ball_tac = unfold_tac @{thms Ball_def};
    24     val unfold_ball_tac = unfold_tac @{thms Ball_def};
    26     fun prove_ball_tac ss = unfold_ball_tac ss THEN Quantifier1.prove_one_point_all_tac;
    25     fun prove_ball_tac ss = unfold_ball_tac ss THEN Quantifier1.prove_one_point_all_tac;
    27   in
    26   in
    28     fn _ => fn ss => fn ct =>
    27     fn _ => fn ss => Quantifier1.rearrange_ball (prove_ball_tac ss) ss o term_of
    29       Quantifier1.rearrange_ball prove_ball_tac (theory_of_cterm ct) ss (term_of ct)
       
    30   end
    28   end
    31 *}
    29 *}
    32 
    30 
    33 
    31 
    34 (** Lemmas for showing that <a,b> uniquely determines a and b **)
    32 (** Lemmas for showing that <a,b> uniquely determines a and b **)