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