925 |
926 |
926 (* (R1 ===> R2) (\<lambda>x\<dots>) (\<lambda>y\<dots>) ----> \<lbrakk>R1 x y\<rbrakk> \<Longrightarrow> R2 (\<dots>x) (\<dots>y) *) |
927 (* (R1 ===> R2) (\<lambda>x\<dots>) (\<lambda>y\<dots>) ----> \<lbrakk>R1 x y\<rbrakk> \<Longrightarrow> R2 (\<dots>x) (\<dots>y) *) |
927 NDT ctxt "2" (lambda_res_tac ctxt), |
928 NDT ctxt "2" (lambda_res_tac ctxt), |
928 |
929 |
929 (* (op =) (Ball\<dots>) (Ball\<dots>) ----> (op =) (\<dots>) (\<dots>) *) |
930 (* (op =) (Ball\<dots>) (Ball\<dots>) ----> (op =) (\<dots>) (\<dots>) *) |
930 NDT ctxt "3" (rtac @{thm RES_FORALL_RSP}), |
931 NDT ctxt "3" (rtac @{thm ball_rsp}), |
931 |
932 |
932 (* (R1 ===> R2) (Ball\<dots>) (Ball\<dots>) ----> \<lbrakk>R1 x y\<rbrakk> \<Longrightarrow> R2 (Ball\<dots>x) (Ball\<dots>y) *) |
933 (* (R1 ===> R2) (Ball\<dots>) (Ball\<dots>) ----> \<lbrakk>R1 x y\<rbrakk> \<Longrightarrow> R2 (Ball\<dots>x) (Ball\<dots>y) *) |
933 NDT ctxt "4" (ball_rsp_tac ctxt), |
934 NDT ctxt "4" (ball_rsp_tac ctxt), |
934 |
935 |
935 (* (op =) (Bex\<dots>) (Bex\<dots>) ----> (op =) (\<dots>) (\<dots>) *) |
936 (* (op =) (Bex\<dots>) (Bex\<dots>) ----> (op =) (\<dots>) (\<dots>) *) |
936 NDT ctxt "5" (rtac @{thm RES_EXISTS_RSP}), |
937 NDT ctxt "5" (rtac @{thm bex_rsp}), |
937 |
938 |
938 (* (R1 ===> R2) (Bex\<dots>) (Bex\<dots>) ----> \<lbrakk>R1 x y\<rbrakk> \<Longrightarrow> R2 (Bex\<dots>x) (Bex\<dots>y) *) |
939 (* (R1 ===> R2) (Bex\<dots>) (Bex\<dots>) ----> \<lbrakk>R1 x y\<rbrakk> \<Longrightarrow> R2 (Bex\<dots>x) (Bex\<dots>y) *) |
939 NDT ctxt "6" (bex_rsp_tac ctxt), |
940 NDT ctxt "6" (bex_rsp_tac ctxt), |
940 |
941 |
941 (* respectfulness of constants *) |
942 (* respectfulness of constants *) |
1028 fun find_aps rtm qtm = distinct (op =) (find_aps_all rtm qtm) |
1029 fun find_aps rtm qtm = distinct (op =) (find_aps_all rtm qtm) |
1029 *} |
1030 *} |
1030 |
1031 |
1031 ML {* |
1032 ML {* |
1032 fun allex_prs_tac lthy quot = |
1033 fun allex_prs_tac lthy quot = |
1033 (EqSubst.eqsubst_tac lthy [0] @{thms FORALL_PRS[symmetric] EXISTS_PRS[symmetric]}) |
1034 (EqSubst.eqsubst_tac lthy [0] @{thms all_prs ex_prs}) THEN' (quotient_tac quot) |
1034 THEN' (quotient_tac quot) |
|
1035 *} |
1035 *} |
1036 |
1036 |
1037 (* Rewrites the term with LAMBDA_PRS thm. |
1037 (* Rewrites the term with LAMBDA_PRS thm. |
1038 |
1038 |
1039 Replaces: (Rep1 ---> Abs2) (\<lambda>x. Rep2 (f (Abs1 x))) |
1039 Replaces: (Rep1 ---> Abs2) (\<lambda>x. Rep2 (f (Abs1 x))) |