src/Sequents/Modal0.thy
author wenzelm
Mon Mar 19 21:10:33 2012 +0100 (2012-03-19)
changeset 47022 8eac39af4ec0
parent 35113 1a0c129bb2e0
child 48891 c0eafbd55de3
permissions -rw-r--r--
moved some legacy stuff;
wenzelm@17481
     1
(*  Title:      Sequents/Modal0.thy
paulson@2073
     2
    Author:     Martin Coen
paulson@2073
     3
    Copyright   1991  University of Cambridge
paulson@2073
     4
*)
paulson@2073
     5
wenzelm@17481
     6
theory Modal0
wenzelm@17481
     7
imports LK0
wenzelm@17481
     8
uses "modal.ML"
wenzelm@17481
     9
begin
paulson@2073
    10
paulson@2073
    11
consts
paulson@2073
    12
  box           :: "o=>o"       ("[]_" [50] 50)
paulson@2073
    13
  dia           :: "o=>o"       ("<>_" [50] 50)
wenzelm@21426
    14
  strimp        :: "[o,o]=>o"   (infixr "--<" 25)
wenzelm@21426
    15
  streqv        :: "[o,o]=>o"   (infixr ">-<" 25)
wenzelm@17481
    16
  Lstar         :: "two_seqi"
wenzelm@17481
    17
  Rstar         :: "two_seqi"
wenzelm@14765
    18
wenzelm@14765
    19
syntax
wenzelm@35113
    20
  "_Lstar"      :: "two_seqe"   ("(_)|L>(_)" [6,6] 5)
wenzelm@35113
    21
  "_Rstar"      :: "two_seqe"   ("(_)|R>(_)" [6,6] 5)
paulson@2073
    22
wenzelm@17481
    23
ML {*
wenzelm@35113
    24
  fun star_tr c [s1, s2] = Const(c, dummyT) $ seq_tr s1 $ seq_tr s2;
wenzelm@35113
    25
  fun star_tr' c [s1, s2] = Const(c, dummyT) $ seq_tr' s1 $ seq_tr' s2;
wenzelm@17481
    26
*}
wenzelm@17481
    27
wenzelm@35113
    28
parse_translation {*
wenzelm@35113
    29
 [(@{syntax_const "_Lstar"}, star_tr @{const_syntax Lstar}),
wenzelm@35113
    30
  (@{syntax_const "_Rstar"}, star_tr @{const_syntax Rstar})]
wenzelm@35113
    31
*}
wenzelm@35113
    32
wenzelm@35113
    33
print_translation {*
wenzelm@35113
    34
 [(@{const_syntax Lstar}, star_tr' @{syntax_const "_Lstar"}),
wenzelm@35113
    35
  (@{const_syntax Rstar}, star_tr' @{syntax_const "_Rstar"})]
wenzelm@35113
    36
*}
wenzelm@17481
    37
wenzelm@17481
    38
defs
wenzelm@17481
    39
  strimp_def:    "P --< Q == [](P --> Q)"
wenzelm@17481
    40
  streqv_def:    "P >-< Q == (P --< Q) & (Q --< P)"
wenzelm@17481
    41
wenzelm@21426
    42
wenzelm@21426
    43
lemmas rewrite_rls = strimp_def streqv_def
wenzelm@21426
    44
wenzelm@21426
    45
lemma iffR:
wenzelm@21426
    46
    "[| $H,P |- $E,Q,$F;  $H,Q |- $E,P,$F |] ==> $H |- $E, P <-> Q, $F"
wenzelm@21426
    47
  apply (unfold iff_def)
wenzelm@21426
    48
  apply (assumption | rule conjR impR)+
wenzelm@21426
    49
  done
wenzelm@21426
    50
wenzelm@21426
    51
lemma iffL:
wenzelm@21426
    52
    "[| $H,$G |- $E,P,Q;  $H,Q,P,$G |- $E |] ==> $H, P <-> Q, $G |- $E"
wenzelm@21426
    53
  apply (unfold iff_def)
wenzelm@21426
    54
  apply (assumption | rule conjL impL basic)+
wenzelm@21426
    55
  done
wenzelm@21426
    56
wenzelm@21426
    57
lemmas safe_rls = basic conjL conjR disjL disjR impL impR notL notR iffL iffR
wenzelm@21426
    58
  and unsafe_rls = allR exL
wenzelm@21426
    59
  and bound_rls = allL exR
wenzelm@17481
    60
wenzelm@17481
    61
end