16 |
16 |
17 local |
17 local |
18 val iffR = prove_goal thy |
18 val iffR = prove_goal thy |
19 "[| $H,P |- $E,Q,$F; $H,Q |- $E,P,$F |] ==> $H |- $E, P <-> Q, $F" |
19 "[| $H,P |- $E,Q,$F; $H,Q |- $E,P,$F |] ==> $H |- $E, P <-> Q, $F" |
20 (fn prems=> |
20 (fn prems=> |
21 [ (rewrite_goals_tac [iff_def]), |
21 [ (rewtac iff_def), |
22 (REPEAT (resolve_tac (prems@[conjR,impR]) 1)) ]); |
22 (REPEAT (resolve_tac (prems@[conjR,impR]) 1)) ]); |
23 |
23 |
24 val iffL = prove_goal thy |
24 val iffL = prove_goal thy |
25 "[| $H,$G |- $E,P,Q; $H,Q,P,$G |- $E |] ==> $H, P <-> Q, $G |- $E" |
25 "[| $H,$G |- $E,P,Q; $H,Q,P,$G |- $E |] ==> $H, P <-> Q, $G |- $E" |
26 (fn prems=> |
26 (fn prems=> |
27 [ rewrite_goals_tac [iff_def], |
27 [ rewtac iff_def, |
28 (REPEAT (resolve_tac (prems@[conjL,impL,basic]) 1)) ]) |
28 (REPEAT (resolve_tac (prems@[conjL,impL,basic]) 1)) ]) |
29 in |
29 in |
30 val safe_rls = [basic,conjL,conjR,disjL,disjR,impL,impR,notL,notR,iffL,iffR]; |
30 val safe_rls = [basic,conjL,conjR,disjL,disjR,impL,impR,notL,notR,iffL,iffR]; |
31 val unsafe_rls = [allR,exL]; |
31 val unsafe_rls = [allR,exL]; |
32 val bound_rls = [allL,exR]; |
32 val bound_rls = [allL,exR]; |
76 val aside_rls = [lstar0,lstar1,lstar2,rstar0,rstar1,rstar2,S43pi0,S43pi1,S43pi2] |
76 val aside_rls = [lstar0,lstar1,lstar2,rstar0,rstar1,rstar2,S43pi0,S43pi1,S43pi2] |
77 end; |
77 end; |
78 end; |
78 end; |
79 structure S43_Prover = Modal_ProverFun(MP_Rule); |
79 structure S43_Prover = Modal_ProverFun(MP_Rule); |
80 |
80 |
81 val Modal_build_completed = (); (*indicate successful build*) |
81 val Modal_build_completed = (); (*indicate successful build*) |
82 |
82 |
83 (*printing functions are inherited from LK*) |
83 (*printing functions are inherited from LK*) |