Theory ILL_predlog

Up to index of Isabelle/Sequents

theory ILL_predlog
imports ILL
begin

(* $Id: ILL_predlog.thy,v 1.3 2007/05/09 17:37:20 wenzelm Exp $ *)

theory ILL_predlog
imports ILL
begin

typedecl plf

consts
  conj :: "[plf,plf] => plf"   (infixr "&" 35)
  disj :: "[plf,plf] => plf"   (infixr "|" 35)
  impl :: "[plf,plf] => plf"   (infixr ">" 35)
  eq :: "[plf,plf] => plf"   (infixr "=" 35)
  ff    :: "plf"

  PL    :: "plf => o"      ("[* / _ / *]" [] 100)

syntax
  "_NG" :: "plf => plf"   ("- _ " [50] 55)

translations

  "[* A & B *]" == "[*A*] && [*B*]"
  "[* A | B *]" == "![*A*] ++ ![*B*]"
  "[* - A *]"   == "[*A > ff*]"
  "[* ff *]"    == "0"
  "[* A = B *]" => "[* (A > B) & (B > A) *]"

  "[* A > B *]" == "![*A*] -o [*B*]"

(* another translations for linear implication:
  "[* A > B *]" == "!([*A*] -o [*B*])" *)

(* from [kleene 52] pp 118,119 *)

lemma k49a: "|- [* A > ( - ( - A)) *]"
  by best_safe

lemma k49b: "|- [*( - ( - ( - A))) = ( - A)*]"
  by best_safe

lemma k49c: "|- [* (A | - A) > ( - - A = A) *]"
  by best_safe

lemma k50a: "|- [* - (A = - A) *]"
  by best_power

lemma k51a: "|- [* - - (A | - A) *]"
  by best_safe

lemma k51b: "|- [* - - (- - A > A) *]"
  by best_power

lemma k56a: "|- [* (A | B) > - (- A & - B) *]"
  by best_safe

lemma k56b: "|- [* (-A | B) > - (A & -B) *]"
  by best_safe

lemma k57a: "|- [* (A & B) > - (-A | -B) *]"
  by best_safe

lemma k57b: "|- [* (A & -B) > -(-A | B) *]"
  by best_power

lemma k58a: "|- [* (A > B) > - (A & -B) *]"
  by best_safe

lemma k58b: "|- [* (A > -B) = -(A & B) *]"
  by best_safe

lemma k58c: "|- [* - (A & B) = (- - A > - B) *]"
  by best_safe

lemma k58d: "|- [* (- - A > - B) = - - (-A | -B) *]"
  by best_safe

lemma k58e: "! [* - -B > B *] |- [* (- -A > B) = (A > B) *]"
  by best_safe

lemma k58f: "! [* - -B > B *] |- [* (A > B) = - (A & -B) *]"
  by best_safe

lemma k58g: "|- [* (- -A > B) > - (A & -B) *]"
  by best_safe

lemma k59a: "|- [* (-A | B) > (A > B) *]"
  by best_safe

lemma k59b: "|- [* (A > B) > - - (-A | B) *]"
  by best_power

lemma k59c: "|- [* (-A > B) > - -(A | B) *]"
  by best_power

lemma k60a: "|- [* (A & B) > - (A > -B) *]"
  by best_safe

lemma k60b: "|- [* (A & -B) > - (A > B) *]"
  by best_safe

lemma k60c: "|- [* ( - - A & B) > - (A > -B) *]"
  by best_safe

lemma k60d: "|- [* (- - A & - B) = - (A > B) *]"
  by best_safe

lemma k60e: "|- [* - (A > B) = - (-A | B) *]"
  by best_safe

lemma k60f: "|- [* - (-A | B) = - - (A & -B) *]"
  by best_safe

lemma k60g: "|- [* - - (A > B) = - (A & -B) *]"
  by best_power

lemma k60h: "|- [* - (A & -B) = (A > - -B) *]"
  by best_safe

lemma k60i: "|- [* (A > - -B) = (- -A > - -B) *]"
  by best_safe

lemma k61a: "|- [* (A | B) > (-A > B) *]"
  by best_safe

lemma k61b: "|- [* - (A | B) = - (-A > B) *]"
  by best_power

lemma k62a: "|- [* (-A | -B) > - (A & B) *]"
  by best_safe

end

lemma k49a:

   |- [*  A > - - A    *]

lemma k49b:

   |- [*  (- - - A    > - A ) & - A  > - - - A     *]

lemma k49c:

   |- [*  (A | - A ) > (- - A   > A) & A > - - A    *]

lemma k50a:

   |- [*  - ((A > - A ) & - A  > A)   *]

lemma k51a:

   |- [*  - - (A | - A )    *]

lemma k51b:

   |- [*  - - (- - A   > A)    *]

lemma k56a:

   |- [*  (A | B) > - (- A  & - B )   *]

lemma k56b:

   |- [*  (- A  | B) > - (A & - B )   *]

lemma k57a:

   |- [*  (A & B) > - (- A  | - B )   *]

lemma k57b:

   |- [*  (A & - B ) > - (- A  | B)   *]

lemma k58a:

   |- [*  (A > B) > - (A & - B )   *]

lemma k58b:

   |- [*  ((A > - B ) > - (A & B) ) & - (A & B)  > A > - B   *]

lemma k58c:

   |- [*  (- (A & B)  > - - A   > - B ) & (- - A   > - B ) > - (A & B)   *]

lemma k58d:

   |- [*  ((- - A   > - B ) > - - (- A  | - B )  ) &
          - - (- A  | - B )   > - - A   > - B  
      *]

lemma k58e:

  ! [*  - - B   > B  *] |- [*  ((- - A   > B) > A > B) & (A > B) > - - A   > B  *]

lemma k58f:

  ! [*  - - B   > B  *]
  |- [*  ((A > B) > - (A & - B ) ) & - (A & - B )  > A > B  *]

lemma k58g:

   |- [*  (- - A   > B) > - (A & - B )   *]

lemma k59a:

   |- [*  (- A  | B) > A > B  *]

lemma k59b:

   |- [*  (A > B) > - - (- A  | B)    *]

lemma k59c:

   |- [*  (- A  > B) > - - (A | B)    *]

lemma k60a:

   |- [*  (A & B) > - (A > - B )   *]

lemma k60b:

   |- [*  (A & - B ) > - (A > B)   *]

lemma k60c:

   |- [*  (- - A   & B) > - (A > - B )   *]

lemma k60d:

   |- [*  ((- - A   & - B ) > - (A > B) ) & - (A > B)  > - - A   & - B   *]

lemma k60e:

   |- [*  (- (A > B)  > - (- A  | B) ) & - (- A  | B)  > - (A > B)   *]

lemma k60f:

   |- [*  (- (- A  | B)  > - - (A & - B )  ) & - - (A & - B )   > - (- A  | B)  
      *]

lemma k60g:

   |- [*  (- - (A > B)   > - (A & - B ) ) & - (A & - B )  > - - (A > B)    *]

lemma k60h:

   |- [*  (- (A & - B )  > A > - - B  ) & (A > - - B  ) > - (A & - B )   *]

lemma k60i:

   |- [*  ((A > - - B  ) > - - A   > - - B  ) & (- - A   > - - B  ) > A > - - B   
      *]

lemma k61a:

   |- [*  (A | B) > - A  > B  *]

lemma k61b:

   |- [*  (- (A | B)  > - (- A  > B) ) & - (- A  > B)  > - (A | B)   *]

lemma k62a:

   |- [*  (- A  | - B ) > - (A & B)   *]