(* Title: Sequents/Modal0.thy
Author : Martin Coen
Copyright 1991 University of Cambridge
*)
theory Modal0
imports LK0
begin
ML_file ‹ modal.ML›
consts
box :: "o→ o" (‹ []_› [50 ] 50 )
dia :: "o→ o" (‹ <>_› [50 ] 50 )
Lstar :: "two_seqi"
Rstar :: "two_seqi"
syntax
"_Lstar" :: "two_seqe" (‹ (_)|L>(_)› [6 ,6 ] 5 )
"_Rstar" :: "two_seqe" (‹ (_)|R>(_)› [6 ,6 ] 5 )
ML ‹
fun star_tr c [s1, s2] = Syntax.const c $ seq_tr s1 $ seq_tr s2;
fun star_tr' c [s1, s2] = Syntax.const c $ seq_tr' s1 $ seq_tr' s2;
›
parse_translation ‹
[(syntax_const ‹ _Lstar› , K (star_tr const_syntax ‹ Lstar› )),
(syntax_const ‹ _Rstar› , K (star_tr const_syntax ‹ Rstar› ))]
›
print_translation ‹
[(const_syntax ‹ Lstar› , K (star_tr' syntax_const ‹ _Lstar› )),
(const_syntax ‹ Rstar› , K (star_tr' syntax_const ‹ _Rstar› ))]
›
definition strimp :: "[o,o]→ o" (infixr ‹ --<\<close> 25)
where "P --< Q == [](P ⟶ Q)"
streqv :: "[o,o]→ o" (infixr ‹ >-<\<close> 25)
where "P >-< Q == (P --< Q) ∧ (Q --< P)"
rewrite_rls = strimp_def streqv_def
iffR: "[ $H,P ⊨ $E,Q,$F; $H,Q ⊨ $E,P,$F] ==> $H ⊨ $E, P ⟷ Q, $F"
apply (unfold iff_def)
apply (assumption | rule conjR impR)+
done
iffL: "[ $H,$G ⊨ $E,P,Q; $H,Q,P,$G ⊨ $E ] ==> $H, P ⟷ Q, $G ⊨ $E"
apply (unfold iff_def)
apply (assumption | rule conjL impL basic)+
done
safe_rls = basic conjL conjR disjL disjR impL impR notL notR iffL iffR
and unsafe_rls = allR exL
and bound_rls = allL exR
Messung V0.5 in Prozent C=28 H=-233 G=165
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-30)
¤
*© Formatika GbR, Deutschland