src/Sequents/Modal0.thy
 author wenzelm Tue, 13 Jun 2006 23:41:39 +0200 changeset 19876 11d447d5d68c parent 17481 75166ebb619b child 21426 87ac12bed1ab permissions -rw-r--r--
tuned;
```
(*  Title:      Sequents/Modal0.thy
ID:         \$Id\$
Author:     Martin Coen
Copyright   1991  University of Cambridge
*)

theory Modal0
imports LK0
uses "modal.ML"
begin

consts
box           :: "o=>o"       ("[]_" [50] 50)
dia           :: "o=>o"       ("<>_" [50] 50)
"--<"         :: "[o,o]=>o"   (infixr 25)
">-<"         :: "[o,o]=>o"   (infixr 25)
Lstar         :: "two_seqi"
Rstar         :: "two_seqi"

syntax
"@Lstar"      :: "two_seqe"   ("(_)|L>(_)" [6,6] 5)
"@Rstar"      :: "two_seqe"   ("(_)|R>(_)" [6,6] 5)

ML {*
val Lstar = "Lstar";
val Rstar = "Rstar";
val SLstar = "@Lstar";
val SRstar = "@Rstar";

fun star_tr c [s1,s2] = Const(c,dummyT)\$ seq_tr s1\$ seq_tr s2;
fun star_tr' c [s1,s2] = Const(c,dummyT) \$ seq_tr' s1 \$ seq_tr' s2;
*}

parse_translation {* [(SLstar,star_tr Lstar), (SRstar,star_tr Rstar)] *}
print_translation {* [(Lstar,star_tr' SLstar), (Rstar,star_tr' SRstar)] *}

defs
strimp_def:    "P --< Q == [](P --> Q)"
streqv_def:    "P >-< Q == (P --< Q) & (Q --< P)"

ML {* use_legacy_bindings (the_context ()) *}

end
```