src/Sequents/ILL_predlog.thy
author wenzelm
Fri Oct 27 13:50:08 2017 +0200 (22 months ago)
changeset 66924 b4d4027f743b
parent 61386 0a29a984a91b
permissions -rw-r--r--
more permissive;
wenzelm@21426
     1
theory ILL_predlog
wenzelm@21426
     2
imports ILL
wenzelm@21426
     3
begin
wenzelm@21426
     4
wenzelm@21426
     5
typedecl plf
wenzelm@21426
     6
wenzelm@21426
     7
consts
wenzelm@61385
     8
  conj :: "[plf,plf] \<Rightarrow> plf"   (infixr "&" 35)
wenzelm@61385
     9
  disj :: "[plf,plf] \<Rightarrow> plf"   (infixr "|" 35)
wenzelm@61385
    10
  impl :: "[plf,plf] \<Rightarrow> plf"   (infixr ">" 35)
wenzelm@61385
    11
  eq :: "[plf,plf] \<Rightarrow> plf"   (infixr "=" 35)
wenzelm@35252
    12
  ff :: "plf"    ("ff")
wenzelm@21426
    13
wenzelm@61385
    14
  PL    :: "plf \<Rightarrow> o"      ("[* / _ / *]" [] 100)
wenzelm@21426
    15
wenzelm@22895
    16
syntax
wenzelm@61385
    17
  "_NG" :: "plf \<Rightarrow> plf"   ("- _ " [50] 55)
wenzelm@22895
    18
wenzelm@21426
    19
translations
wenzelm@61385
    20
  "[* A & B *]" \<rightleftharpoons> "[*A*] && [*B*]"
wenzelm@61385
    21
  "[* A | B *]" \<rightleftharpoons> "![*A*] ++ ![*B*]"
wenzelm@61385
    22
  "[* - A *]" \<rightleftharpoons> "[*A > ff*]"
wenzelm@61385
    23
  "[* ff *]" \<rightleftharpoons> "0"
wenzelm@61385
    24
  "[* A = B *]" \<rightharpoonup> "[* (A > B) & (B > A) *]"
wenzelm@21426
    25
wenzelm@61385
    26
  "[* A > B *]" \<rightleftharpoons> "![*A*] -o [*B*]"
wenzelm@21426
    27
wenzelm@21426
    28
(* another translations for linear implication:
wenzelm@21426
    29
  "[* A > B *]" == "!([*A*] -o [*B*])" *)
wenzelm@21426
    30
wenzelm@21426
    31
(* from [kleene 52] pp 118,119 *)
wenzelm@21426
    32
wenzelm@61386
    33
lemma k49a: "\<turnstile> [* A > ( - ( - A)) *]"
wenzelm@21427
    34
  by best_safe
wenzelm@21426
    35
wenzelm@61386
    36
lemma k49b: "\<turnstile> [*( - ( - ( - A))) = ( - A)*]"
wenzelm@21427
    37
  by best_safe
wenzelm@21426
    38
wenzelm@61386
    39
lemma k49c: "\<turnstile> [* (A | - A) > ( - - A = A) *]"
wenzelm@21427
    40
  by best_safe
wenzelm@21426
    41
wenzelm@61386
    42
lemma k50a: "\<turnstile> [* - (A = - A) *]"
wenzelm@21427
    43
  by best_power
wenzelm@21426
    44
wenzelm@61386
    45
lemma k51a: "\<turnstile> [* - - (A | - A) *]"
wenzelm@21427
    46
  by best_safe
wenzelm@21426
    47
wenzelm@61386
    48
lemma k51b: "\<turnstile> [* - - (- - A > A) *]"
wenzelm@21427
    49
  by best_power
wenzelm@21426
    50
wenzelm@61386
    51
lemma k56a: "\<turnstile> [* (A | B) > - (- A & - B) *]"
wenzelm@21427
    52
  by best_safe
wenzelm@21426
    53
wenzelm@61386
    54
lemma k56b: "\<turnstile> [* (-A | B) > - (A & -B) *]"
wenzelm@21427
    55
  by best_safe
wenzelm@21426
    56
wenzelm@61386
    57
lemma k57a: "\<turnstile> [* (A & B) > - (-A | -B) *]"
wenzelm@21427
    58
  by best_safe
wenzelm@21426
    59
wenzelm@61386
    60
lemma k57b: "\<turnstile> [* (A & -B) > -(-A | B) *]"
wenzelm@21427
    61
  by best_power
wenzelm@21426
    62
wenzelm@61386
    63
lemma k58a: "\<turnstile> [* (A > B) > - (A & -B) *]"
wenzelm@21427
    64
  by best_safe
wenzelm@21426
    65
wenzelm@61386
    66
lemma k58b: "\<turnstile> [* (A > -B) = -(A & B) *]"
wenzelm@21427
    67
  by best_safe
wenzelm@21426
    68
wenzelm@61386
    69
lemma k58c: "\<turnstile> [* - (A & B) = (- - A > - B) *]"
wenzelm@21427
    70
  by best_safe
wenzelm@21426
    71
wenzelm@61386
    72
lemma k58d: "\<turnstile> [* (- - A > - B) = - - (-A | -B) *]"
wenzelm@21427
    73
  by best_safe
wenzelm@21426
    74
wenzelm@61386
    75
lemma k58e: "! [* - -B > B *] \<turnstile> [* (- -A > B) = (A > B) *]"
wenzelm@21427
    76
  by best_safe
wenzelm@21426
    77
wenzelm@61386
    78
lemma k58f: "! [* - -B > B *] \<turnstile> [* (A > B) = - (A & -B) *]"
wenzelm@21427
    79
  by best_safe
wenzelm@21426
    80
wenzelm@61386
    81
lemma k58g: "\<turnstile> [* (- -A > B) > - (A & -B) *]"
wenzelm@21427
    82
  by best_safe
wenzelm@21426
    83
wenzelm@61386
    84
lemma k59a: "\<turnstile> [* (-A | B) > (A > B) *]"
wenzelm@21427
    85
  by best_safe
wenzelm@21426
    86
wenzelm@61386
    87
lemma k59b: "\<turnstile> [* (A > B) > - - (-A | B) *]"
wenzelm@21427
    88
  by best_power
wenzelm@21426
    89
wenzelm@61386
    90
lemma k59c: "\<turnstile> [* (-A > B) > - -(A | B) *]"
wenzelm@21427
    91
  by best_power
wenzelm@21426
    92
wenzelm@61386
    93
lemma k60a: "\<turnstile> [* (A & B) > - (A > -B) *]"
wenzelm@21427
    94
  by best_safe
wenzelm@21426
    95
wenzelm@61386
    96
lemma k60b: "\<turnstile> [* (A & -B) > - (A > B) *]"
wenzelm@21427
    97
  by best_safe
wenzelm@21426
    98
wenzelm@61386
    99
lemma k60c: "\<turnstile> [* ( - - A & B) > - (A > -B) *]"
wenzelm@21427
   100
  by best_safe
wenzelm@21426
   101
wenzelm@61386
   102
lemma k60d: "\<turnstile> [* (- - A & - B) = - (A > B) *]"
wenzelm@21427
   103
  by best_safe
wenzelm@21426
   104
wenzelm@61386
   105
lemma k60e: "\<turnstile> [* - (A > B) = - (-A | B) *]"
wenzelm@21427
   106
  by best_safe
wenzelm@21426
   107
wenzelm@61386
   108
lemma k60f: "\<turnstile> [* - (-A | B) = - - (A & -B) *]"
wenzelm@21427
   109
  by best_safe
wenzelm@21426
   110
wenzelm@61386
   111
lemma k60g: "\<turnstile> [* - - (A > B) = - (A & -B) *]"
wenzelm@21427
   112
  by best_power
wenzelm@21426
   113
wenzelm@61386
   114
lemma k60h: "\<turnstile> [* - (A & -B) = (A > - -B) *]"
wenzelm@21427
   115
  by best_safe
wenzelm@21426
   116
wenzelm@61386
   117
lemma k60i: "\<turnstile> [* (A > - -B) = (- -A > - -B) *]"
wenzelm@21427
   118
  by best_safe
wenzelm@21426
   119
wenzelm@61386
   120
lemma k61a: "\<turnstile> [* (A | B) > (-A > B) *]"
wenzelm@21427
   121
  by best_safe
wenzelm@21426
   122
wenzelm@61386
   123
lemma k61b: "\<turnstile> [* - (A | B) = - (-A > B) *]"
wenzelm@21427
   124
  by best_power
wenzelm@21426
   125
wenzelm@61386
   126
lemma k62a: "\<turnstile> [* (-A | -B) > - (A & B) *]"
wenzelm@21427
   127
  by best_safe
wenzelm@21426
   128
wenzelm@21426
   129
end