src/Sequents/ILL_predlog.thy
author nipkow
Thu, 03 Jul 2025 13:53:14 +0200
changeset 82802 547335b41005
parent 81213 d1170873976e
permissions -rw-r--r--
removed duplicate lemma; added the notion of the kernel of a function
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
     1
theory ILL_predlog
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
     2
imports ILL
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
     3
begin
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
     4
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
     5
typedecl plf
81213
d1170873976e clarified concrete vs. abstract syntax;
wenzelm
parents: 80914
diff changeset
     6
consts "PL" :: "plf \<Rightarrow> o"
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
     7
22895
adc529c89281 tuned syntax;
wenzelm
parents: 21427
diff changeset
     8
syntax
81213
d1170873976e clarified concrete vs. abstract syntax;
wenzelm
parents: 80914
diff changeset
     9
  "_PL" :: "plf \<Rightarrow> o"      (\<open>[* / _ / *]\<close> [] 100)
d1170873976e clarified concrete vs. abstract syntax;
wenzelm
parents: 80914
diff changeset
    10
  "_conj" :: "[plf,plf] \<Rightarrow> plf"   (infixr \<open>&\<close> 35)
d1170873976e clarified concrete vs. abstract syntax;
wenzelm
parents: 80914
diff changeset
    11
  "_disj" :: "[plf,plf] \<Rightarrow> plf"   (infixr \<open>|\<close> 35)
d1170873976e clarified concrete vs. abstract syntax;
wenzelm
parents: 80914
diff changeset
    12
  "_impl" :: "[plf,plf] \<Rightarrow> plf"   (infixr \<open>>\<close> 35)
d1170873976e clarified concrete vs. abstract syntax;
wenzelm
parents: 80914
diff changeset
    13
  "_eq" :: "[plf,plf] \<Rightarrow> plf"   (infixr \<open>=\<close> 35)
d1170873976e clarified concrete vs. abstract syntax;
wenzelm
parents: 80914
diff changeset
    14
  "_ff" :: "plf"    (\<open>ff\<close>)
80914
d97fdabd9e2b standardize mixfix annotations via "isabelle update -a -u mixfix_cartouches" --- to simplify systematic editing;
wenzelm
parents: 61386
diff changeset
    15
  "_NG" :: "plf \<Rightarrow> plf"   (\<open>- _ \<close> [50] 55)
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    16
translations
61385
538100cc4399 more symbols;
wenzelm
parents: 35762
diff changeset
    17
  "[* A & B *]" \<rightleftharpoons> "[*A*] && [*B*]"
538100cc4399 more symbols;
wenzelm
parents: 35762
diff changeset
    18
  "[* A | B *]" \<rightleftharpoons> "![*A*] ++ ![*B*]"
538100cc4399 more symbols;
wenzelm
parents: 35762
diff changeset
    19
  "[* - A *]" \<rightleftharpoons> "[*A > ff*]"
538100cc4399 more symbols;
wenzelm
parents: 35762
diff changeset
    20
  "[* ff *]" \<rightleftharpoons> "0"
538100cc4399 more symbols;
wenzelm
parents: 35762
diff changeset
    21
  "[* A = B *]" \<rightharpoonup> "[* (A > B) & (B > A) *]"
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    22
61385
538100cc4399 more symbols;
wenzelm
parents: 35762
diff changeset
    23
  "[* A > B *]" \<rightleftharpoons> "![*A*] -o [*B*]"
81213
d1170873976e clarified concrete vs. abstract syntax;
wenzelm
parents: 80914
diff changeset
    24
  "_PL" \<rightleftharpoons> "CONST PL"
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    25
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    26
(* another translations for linear implication:
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    27
  "[* A > B *]" == "!([*A*] -o [*B*])" *)
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    28
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    29
(* from [kleene 52] pp 118,119 *)
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    30
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    31
lemma k49a: "\<turnstile> [* A > ( - ( - A)) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    32
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    33
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    34
lemma k49b: "\<turnstile> [*( - ( - ( - A))) = ( - A)*]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    35
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    36
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    37
lemma k49c: "\<turnstile> [* (A | - A) > ( - - A = A) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    38
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    39
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    40
lemma k50a: "\<turnstile> [* - (A = - A) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    41
  by best_power
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    42
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    43
lemma k51a: "\<turnstile> [* - - (A | - A) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    44
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    45
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    46
lemma k51b: "\<turnstile> [* - - (- - A > A) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    47
  by best_power
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    48
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    49
lemma k56a: "\<turnstile> [* (A | B) > - (- A & - B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    50
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    51
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    52
lemma k56b: "\<turnstile> [* (-A | B) > - (A & -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    53
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    54
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    55
lemma k57a: "\<turnstile> [* (A & B) > - (-A | -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    56
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    57
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    58
lemma k57b: "\<turnstile> [* (A & -B) > -(-A | B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    59
  by best_power
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    60
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    61
lemma k58a: "\<turnstile> [* (A > B) > - (A & -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    62
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    63
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    64
lemma k58b: "\<turnstile> [* (A > -B) = -(A & B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    65
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    66
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    67
lemma k58c: "\<turnstile> [* - (A & B) = (- - A > - B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    68
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    69
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    70
lemma k58d: "\<turnstile> [* (- - A > - B) = - - (-A | -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    71
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    72
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    73
lemma k58e: "! [* - -B > B *] \<turnstile> [* (- -A > B) = (A > B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    74
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    75
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    76
lemma k58f: "! [* - -B > B *] \<turnstile> [* (A > B) = - (A & -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    77
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    78
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    79
lemma k58g: "\<turnstile> [* (- -A > B) > - (A & -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    80
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    81
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    82
lemma k59a: "\<turnstile> [* (-A | B) > (A > B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    83
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    84
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    85
lemma k59b: "\<turnstile> [* (A > B) > - - (-A | B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    86
  by best_power
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    87
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    88
lemma k59c: "\<turnstile> [* (-A > B) > - -(A | B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    89
  by best_power
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    90
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    91
lemma k60a: "\<turnstile> [* (A & B) > - (A > -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    92
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    93
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    94
lemma k60b: "\<turnstile> [* (A & -B) > - (A > B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    95
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    96
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
    97
lemma k60c: "\<turnstile> [* ( - - A & B) > - (A > -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
    98
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
    99
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   100
lemma k60d: "\<turnstile> [* (- - A & - B) = - (A > B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   101
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   102
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   103
lemma k60e: "\<turnstile> [* - (A > B) = - (-A | B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   104
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   105
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   106
lemma k60f: "\<turnstile> [* - (-A | B) = - - (A & -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   107
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   108
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   109
lemma k60g: "\<turnstile> [* - - (A > B) = - (A & -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   110
  by best_power
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   111
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   112
lemma k60h: "\<turnstile> [* - (A & -B) = (A > - -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   113
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   114
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   115
lemma k60i: "\<turnstile> [* (A > - -B) = (- -A > - -B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   116
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   117
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   118
lemma k61a: "\<turnstile> [* (A | B) > (-A > B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   119
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   120
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   121
lemma k61b: "\<turnstile> [* - (A | B) = - (-A > B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   122
  by best_power
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   123
61386
0a29a984a91b more symbols;
wenzelm
parents: 61385
diff changeset
   124
lemma k62a: "\<turnstile> [* (-A | -B) > - (A & B) *]"
21427
7c8f4a331f9b converted legacy ML scripts;
wenzelm
parents: 21426
diff changeset
   125
  by best_safe
21426
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   126
87ac12bed1ab converted legacy ML scripts;
wenzelm
parents:
diff changeset
   127
end