LUKASI_1

index · ← ZFMODEL2 · PROCAL_1 →
:: Propositional Calculus
::  by Grzegorz Bancerek, Agata Darmochwa\l and Andrzej Trybulec
::
:: Received September 26, 1990
:: Copyright (c) 1990-2026 Association of Mizar Users
::           (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.

environ

 vocabularies SUBSET_1, CQC_LANG, XBOOLEAN, CQC_THE1, QC_LANG1;
 notations SUBSET_1, QC_LANG1, CQC_LANG, CQC_THE1;
 constructors CQC_THE1;
 registrations CQC_LANG;
 expansions CQC_THE1;
 theorems CQC_THE1, QC_LANG2;

begin

reserve A for QC-alphabet;
reserve p, q, r, s, t for Element of CQC-WFF(A);
reserve X for Subset of CQC-WFF(A);

theorem Th1:
  (p => q) => ((q => r) => (p => r)) in TAUT(A)
proof
  (p => q) => ('not'(q '&' 'not' r) => 'not'(p '&' 'not' r)) in TAUT(A) by
CQC_THE1:44;
  then (p => q) => ((q => r) => 'not'(p '&' 'not' r)) in TAUT(A)
  by QC_LANG2:def 2;
  hence thesis by QC_LANG2:def 2;
end;

theorem Th2:
  p => q in TAUT(A) implies (q => r) => (p => r) in TAUT(A)
proof
  assume
A1: p => q in TAUT(A);
  (p => q) => ((q => r) => (p => r)) in TAUT(A) by Th1;
  hence thesis by A1,CQC_THE1:46;
end;

theorem Th3:
  p => q in TAUT(A) & q => r in TAUT(A) implies p => r in TAUT(A)
proof
  assume that
A1: p => q in TAUT(A) and
A2: q => r in TAUT(A);
  (p => q) => ((q => r) => (p => r)) in TAUT(A) by Th1;
  then (q => r) => (p => r) in TAUT(A) by A1,CQC_THE1:46;
  hence thesis by A2,CQC_THE1:46;
end;

theorem Th4: :: Identity law
  p => p in TAUT(A)
proof
  ('not' p => p) => p in TAUT(A) & p => ('not' p => p) in TAUT(A)
     by CQC_THE1:42,43;
  hence thesis by Th3;
end;

Lm1: (((q => r) => (p => r)) => s) => ((p => q) => s) in TAUT(A)
proof
  (p => q) => ((q => r) => (p => r)) in TAUT(A) by Th1;
  hence thesis by Th2;
end;

Lm2: (p => (q => r)) => ((s => q) => (p => (s => r))) in TAUT(A)
proof
  ((((q => r) => (s => r)) => (p => (s => r))) => ((s => q) => (p => (s =>
r))) ) => ((p => (q => r)) => ((s => q) => (p => (s => r)))) in TAUT(A)&
(((q =>
r) => (s => r)) => (p => (s => r))) => ((s => q) => (p => (s => r))) in TAUT(A)
by Lm1;
  hence thesis by CQC_THE1:46;
end;

Lm3: (p => q) => (((p => r) => s) => ((q => r) => s)) in TAUT(A)
proof
  ((q => r) => (p => r)) => (((p => r) => s) => ((q => r) => s)) in
TAUT(A) &
((( q => r) => (p => r)) => (((p => r) => s) => ((q => r) => s))) => ((p => q)
  => ( ((p => r) => s) => ((q => r) => s))) in TAUT(A) by Lm1,Th1;
  hence thesis by CQC_THE1:46;
end;

Lm4: (t => ((p => r) => s)) => ((p => q) => (t => ((q => r) => s))) in TAUT(A)
proof
  ((p => q) => (((p => r) => s) => ((q => r) => s))) in TAUT(A) & ((p => q)
=> (( (p => r) => s) => ((q => r) => s))) => ((t => ((p => r) => s)) => ((p =>
  q) => (t => ((q => r) => s)))) in TAUT(A) by Lm2,Lm3;
  hence thesis by CQC_THE1:46;
end;

Lm5: (('not' p => q) => r) => (p => r) in TAUT(A)
proof
  p => ('not' p => q) in TAUT(A) by CQC_THE1:43;
  hence thesis by Th2;
end;

Lm6: p => ((('not' p => r) => s) => ((q => r) => s)) in TAUT(A)
proof
  ('not' p => q) => ((('not' p => r) => s) => ((q => r) => s)) in TAUT(A) & (
  (( 'not' p => q) => ((('not' p => r) => s) => ((q => r) => s)) ) => (p => (((
  'not' p => r) => s) => ((q => r) => s)))) in TAUT(A) by Lm3,Lm5;
  hence thesis by CQC_THE1:46;
end;

Lm7: (q => (('not' p => p) => p)) => (('not' p => p) => p) in TAUT(A)
proof
  ('not' p => p) => p in TAUT(A) & (('not' p => p) => p) => ((('not'(('not' p
  => p) => p) => (('not' p => p) => p)) => (('not' p => p) => p)) => ((q => ((
  'not' p => p) => p)) => (('not' p => p) => p))) in TAUT(A)
  by Lm6,CQC_THE1:42;
  then
  ('not'(('not' p => p) => p) => (('not' p => p) => p)) => (('not' p => p)
  => p ) in TAUT(A) & (('not'(('not' p => p) => p) =>
(('not' p => p) => p)) => ((
'not' p => p) => p)) => ((q => (('not' p => p) => p)) => (('not' p => p) => p))
  in TAUT(A) by CQC_THE1:42,46;
  hence thesis by CQC_THE1:46;
end;

Lm8: t => (('not' p => p) => p) in TAUT(A)
proof
  ('not' t => (('not' p => p) => p)) => (('not' p => p) => p) in TAUT(A) & ((
'not' t => (('not' p => p) => p)) => (('not' p => p) => p)) => (t => ( ('not' p
  => p) => p)) in TAUT(A) by Lm5,Lm7;
  hence thesis by CQC_THE1:46;
end;

Lm9: ('not' p => q) => (t => ((q => p) => p)) in TAUT(A)
proof
  t => (('not' p => p) => p) in TAUT(A) & (t => (('not' p => p) => p)) => ((
  'not' p => q) => (t => ((q => p) => p) )) in TAUT(A) by Lm4,Lm8;
  hence thesis by CQC_THE1:46;
end;

Lm10: ((t => ((q => p) => p)) => r) => (('not' p => q) => r) in TAUT(A)
proof
  ('not' p => q) => (t => ((q => p) => p)) in TAUT(A) & (('not' p => q) => (t
=> ((q => p) => p))) => (((t => ((q => p) => p)) => r) => (('not' p => q) => r)
  ) in TAUT(A) by Lm9,Th1;
  hence thesis by CQC_THE1:46;
end;

Lm11: ('not' p => q) => ((q => p) => p) in TAUT(A)
proof
  ('not'((q => p) => p) => ((q => p) => p)) => ((q => p) => p) in TAUT(A) & (
( 'not'((q => p) => p) => ((q => p) => p)) => ((q => p) => p)) => (( 'not' p =>
  q ) => ((q => p) => p)) in TAUT(A) by Lm10,CQC_THE1:42;
  hence thesis by CQC_THE1:46;
end;

Lm12: p => ((q => p) => p) in TAUT(A)
proof
  ('not' p => q) => ((q => p) => p) in TAUT(A) & (('not' p => q) => ((q => p)
  => p)) => (p => ((q => p) => p)) in TAUT(A) by Lm5,Lm11;
  hence thesis by CQC_THE1:46;
end;

theorem Th5:
  q => (p => q) in TAUT(A)
proof
  q => (('not' p => q) => q) in TAUT(A) & (q => (('not' p => q) => q)) => ((p
  => ('not' p => q)) => (q => (p => q))) in TAUT(A) by Lm2,Lm12;
  then p => ('not' p => q) in TAUT(A) & (p => ('not' p => q)) =>
(q => (p => q))
  in TAUT(A) by CQC_THE1:43,46;
  hence thesis by CQC_THE1:46;
end;

theorem Th6:
  ((p => q) => r) => (q => r) in TAUT(A)
proof
  q => (p => q) in TAUT(A) & (q => (p => q)) => (((p => q) => r) => (q => r))
  in TAUT(A) by Th1,Th5;
  hence thesis by CQC_THE1:46;
end;

theorem Th7:
  q => ((q => p) => p) in TAUT(A)
proof
  ('not' p => q) => ((q => p) => p) in TAUT(A) & (('not' p => q) => ((q => p)
  => p)) => (q => ((q => p) => p)) in TAUT(A) by Lm11,Th6;
  hence thesis by CQC_THE1:46;
end;

theorem Th8:
  (s => (q => p)) => (q => (s => p)) in TAUT(A)
proof
  q => ((q => p) => p) in TAUT(A) & (q => ((q => p) => p)) => ((s => (q => p)
  ) => (q => (s => p))) in TAUT(A) by Lm2,Th7;
  hence thesis by CQC_THE1:46;
end;

theorem Th9:
  (q => r) => ((p => q) => (p => r)) in TAUT(A)
proof
  (p => q) => ((q => r) => (p => r)) in TAUT(A) & ((p => q) => ((q => r) => (
  p => r))) => ((q => r) => ((p => q) => (p => r))) in TAUT(A) by Th1,Th8;
  hence thesis by CQC_THE1:46;
end;

Lm13: ((q => (s => p)) => r) => ((s => (q => p)) => r) in TAUT(A)
proof
  (s => (q => p)) => (q => (s => p)) in TAUT(A) & ((s => (q => p)) => (q => (
s => p))) => (((q => (s => p)) => r) => ((s => (q => p)) => r)) in TAUT(A)
by Th1,Th8;
  hence thesis by CQC_THE1:46;
end;

Lm14: ((p => q) => p) => p in TAUT(A)
proof
  ('not' p => (p => q)) => (((p => q) => p) => p) in TAUT(A) & (('not' p => (
p => q)) => (((p => q) => p) => p)) => ((p => ('not' p => q)) => (((p => q) =>
  p) => p)) in TAUT(A) by Lm11,Lm13;
  then
  p => ('not' p => q) in TAUT(A) & (p => ('not' p => q)) => (((p => q) => p)
  => p ) in TAUT(A) by CQC_THE1:43,46;
  hence thesis by CQC_THE1:46;
end;

Lm15: ((p => r) => s) => ((p => q) => ((q => r) => s)) in TAUT(A)
proof
  (p => q) => (((p => r) => s) => ((q => r) => s)) in TAUT(A) & ((p => q) =>
  (((p => r) => s) => ((q => r) => s))) => (((p => r) => s) => ((p => q) => ((q
  => r) => s))) in TAUT(A) by Lm3,Th8;
  hence thesis by CQC_THE1:46;
end;

Lm16: ((p => q) => r) => ((r => p) => p) in TAUT(A)
proof
  ((p => q) => p) => p in TAUT(A) & (((p => q) => p) => p) => (((p => q) => r
  ) => ((r => p) => p)) in TAUT(A) by Lm14,Lm15;
  hence thesis by CQC_THE1:46;
end;

Lm17: (((r => p) => p) => s) => (((p => q) => r) => s) in TAUT(A)
proof
  ((p => q) => r) => ((r => p) => p) in TAUT(A) & (((p => q) => r) => ((r =>
p) => p)) => ((((r => p) => p) => s) => (((p => q) => r) => s)) in TAUT(A)
by Lm16,Th1;
  hence thesis by CQC_THE1:46;
end;

Lm18: ((q => r) => p) => ((q => p) => p) in TAUT(A)
proof
  ((p => q) => q) => ((q => p) => p) in TAUT(A) & (((p => q) => q) => ((q =>
  p) => p)) => (((q => r) => p) => ((q => p) => p)) in TAUT(A) by Lm16,Lm17;
  hence thesis by CQC_THE1:46;
end;

theorem Th10:
  (q => (q => r)) => (q => r) in TAUT(A)
proof
  (q => r) => (q => r) in TAUT(A) & ((q => r) => (q => r)) => ((q => (q => r)
  ) => (q => r)) in TAUT(A) by Lm18,Th4;
  hence thesis by CQC_THE1:46;
end;

Lm19: (q => s) => (((q => r) => p) => ((s => p) => p)) in TAUT(A)
proof
  ((q => r) => p) => ((q => p) => p) in TAUT(A) & (((q => r) => p) => ((q =>
p) => p)) => ((q => s) => (((q => r) => p) => ((s => p) => p))) in TAUT(A)
by Lm4,Lm18;
  hence thesis by CQC_THE1:46;
end;

Lm20: ((q => r) => p) => ((q => s) => ((s => p) => p)) in TAUT(A)
proof
  (q => s) => (((q => r) => p) => ((s => p) => p)) in TAUT(A) & ((q => s) =>
  (((q => r) => p) => ((s => p) => p))) => (((q => r) => p) => ((q => s) => ((s
  => p) => p))) in TAUT(A) by Lm19,Th8;
  hence thesis by CQC_THE1:46;
end;

Lm21: (q => s) => ((s => (p => (q => r))) => (p => (q => r))) in TAUT(A)
proof
  (q => r) => (p => (q => r)) in TAUT(A) & ((q => r) => (p => (q => r))) => (
  (q => s) => ((s => (p => (q => r))) => (p => (q => r)))) in TAUT(A)
  by Lm20,Th5;
  hence thesis by CQC_THE1:46;
end;

Lm22: (s => (p => (q => r))) => ((q => s) => (p => (q => r))) in TAUT(A)
proof
  (q => s) => ((s => (p => (q => r))) => (p => (q => r))) in TAUT(A) & ((q =>
  s) => ((s => (p => (q => r))) => (p => (q => r)))) => ((s => (p => (q => r)))
  => ( (q => s) => (p => (q => r)))) in TAUT(A) by Lm21,Th8;
  hence thesis by CQC_THE1:46;
end;

theorem Th11:
  (p => (q => r)) => ((p => q) => (p => r)) in TAUT(A)
proof
  (q => r) => ((p => q) => (p => r)) in TAUT(A) & ((q => r) => ((p => q) => (
  p => r))) => ((p => (q => r)) => ((p => q) => (p => r))) in TAUT(A)
  by Lm22,Th9;
  hence thesis by CQC_THE1:46;
end;

theorem Th12:
  'not' VERUM(A) => p in TAUT(A)
proof
  VERUM(A) => ('not' VERUM(A) => p) in TAUT(A) by CQC_THE1:43;
  hence thesis by CQC_THE1:41,46;
end;

theorem Th13:
  q in TAUT(A) implies p => q in TAUT(A)
proof
  q => (p => q) in TAUT(A) by Th5;
  hence thesis by CQC_THE1:46;
end;

theorem
  p in TAUT(A) implies (p => q) => q in TAUT(A)
proof
  assume
A1: p in TAUT(A);
  p => ((p => q) => q) in TAUT(A) by Th7;
  hence thesis by A1,CQC_THE1:46;
end;

theorem Th15:
  s => (q => p) in TAUT(A) implies q => (s => p) in TAUT(A)
proof
  assume
A1: s => (q => p) in TAUT(A);
  (s => (q => p)) => (q => (s => p)) in TAUT(A) by Th8;
  hence thesis by A1,CQC_THE1:46;
end;

theorem Th16:
  s => (q => p) in TAUT(A) & q in TAUT(A) implies s => p in TAUT(A)
proof
  assume s => (q => p) in TAUT(A);
  then q => (s => p) in TAUT(A) by Th15;
  hence thesis by CQC_THE1:46;
end;

theorem
  s => (q => p) in TAUT(A) & q in TAUT(A) & s in TAUT(A) implies p in TAUT(A)
proof
  assume s => (q => p) in TAUT(A) & q in TAUT(A);
  then s => p in TAUT(A) by Th16;
  hence thesis by CQC_THE1:46;
end;

theorem
  q => (q => r) in TAUT(A) implies q => r in TAUT(A)
proof
  (q => (q => r)) => (q => r) in TAUT(A) by Th10;
  hence thesis by CQC_THE1:46;
end;

theorem Th19:
  (p => (q => r)) in TAUT(A) implies (p => q) => (p => r) in TAUT(A)
proof
  assume
A1: p => (q => r) in TAUT(A);
  (p => (q => r)) => ((p => q) => (p => r)) in TAUT(A) by Th11;
  hence thesis by A1,CQC_THE1:46;
end;

theorem Th20:
  (p => (q => r)) in TAUT(A) & p => q in TAUT(A) implies p => r in TAUT(A)
proof
  assume (p => (q => r)) in TAUT(A);
  then (p => q) => (p => r) in TAUT(A) by Th19;
  hence thesis by CQC_THE1:46;
end;

theorem
  (p => (q => r)) in TAUT(A) & p => q in TAUT(A) & p in TAUT(A) implies
  r in TAUT(A)
proof
  assume (p => (q => r)) in TAUT(A) & p => q in TAUT(A);
  then p => r in TAUT(A) by Th20;
  hence thesis by CQC_THE1:46;
end;

theorem Th22:
  p => (q => r) in TAUT(A) & p => (r => s ) in TAUT(A) implies
   p => (q => s) in TAUT(A)
proof
  assume that
A1: p => (q => r) in TAUT(A) and
A2: p => (r => s ) in TAUT(A);
  p => ((q => r) => ((r => s) => (q => s))) in TAUT(A) by Th1,Th13;
  then p => ((r => s) => (q => s)) in TAUT(A) by A1,Th20;
  hence thesis by A2,Th20;
end;

theorem
  p => VERUM(A) in TAUT(A) by Th13,CQC_THE1:41;

Lm23: 'not' p => (p => 'not' VERUM(A)) in TAUT(A)
proof
  p => ('not' p => 'not' VERUM(A)) in TAUT(A) by CQC_THE1:43;
  hence thesis by Th15;
end;

Lm24: ('not' p => 'not' VERUM(A)) => p in TAUT(A)
proof
  'not' p => ('not' VERUM(A) => p) in TAUT(A) &
('not' p => ('not' VERUM(A) => p))
  => ( ('not' p => 'not' VERUM(A)) => ('not' p => p)) in TAUT(A)
by Th11,Th12,Th13;
  then
A1: ('not' p => 'not' VERUM(A)) => ('not' p => p) in TAUT(A)
  by CQC_THE1:46;
  ('not' p => p) => p in TAUT(A) by CQC_THE1:42;
  hence thesis by A1,Th3;
end;

theorem Th24:
  ('not' p => 'not' q) => (q => p) in TAUT(A)
proof
  q => ('not' q => 'not' VERUM(A)) in TAUT(A) &
  ('not' q => 'not' VERUM(A)) => ((
  'not' p => 'not' q) => ('not' p => 'not' VERUM(A))) in TAUT(A)
  by Th9,CQC_THE1:43;
  then
A1: q => (('not' p => 'not' q) => ('not' p => 'not' VERUM(A))) in TAUT(A)
  by Th3;
  q => (('not' p => 'not' VERUM(A)) => p) in TAUT(A) by Lm24,Th13;
  then q => (('not' p => 'not' q) => p) in TAUT(A) by A1,Th22;
  hence thesis by Th15;
end;

theorem Th25:
  'not' 'not' p => p in TAUT(A)
proof
  'not' 'not' p => ('not' p => 'not' VERUM(A)) in TAUT(A) & ('not' p =>
'not'
  VERUM(A)) => (VERUM(A) => p) in TAUT(A) by Lm23,Th24;
  then 'not' 'not' p => (VERUM(A) => p) in TAUT(A) by Th3;
  then VERUM(A) => ('not' 'not' p => p) in TAUT(A) by Th15;
  hence thesis by CQC_THE1:41,46;
end;

Lm25: now
  let A,p;
  'not' 'not' p => p in TAUT(A) by Th25;
  then
A1: (p => 'not' VERUM(A)) => ('not' 'not' p => 'not' VERUM(A))
  in TAUT(A) by Th2;
  ('not' 'not' p => 'not' VERUM(A)) => 'not' p in TAUT(A) by Lm24;
  hence (p => 'not' VERUM(A)) => 'not' p in TAUT(A) by A1,Th3;
end;

theorem Th26:
  (p => q) => ('not' q => 'not' p) in TAUT(A)
proof
  'not' q => (q => 'not' VERUM(A)) in TAUT(A) &
(q => 'not' VERUM(A)) => ((p
=> q)
  => ( p => 'not' VERUM(A))) in TAUT(A) by Lm23,Th9;
  then
A1: 'not' q => ((p => q) => (p => 'not' VERUM(A))) in TAUT(A) by Th3;
  'not' q => ((p => 'not' VERUM(A)) => 'not' p) in TAUT(A) by Lm25,Th13;
  then 'not' q => ((p => q) => 'not' p) in TAUT(A) by A1,Th22;
  hence thesis by Th15;
end;

theorem Th27:
  p => 'not' 'not' p in TAUT(A)
proof
  (VERUM(A) => p) => ('not' p => 'not' VERUM(A)) in TAUT(A) &
('not' p => 'not'
  VERUM(A)) => 'not' 'not' p in TAUT(A) by Lm25,Th26;
  then
A1: (VERUM(A) => p) => 'not' 'not' p in TAUT(A) by Th3;
  p => (VERUM(A) => p) in TAUT(A) by Th5;
  hence thesis by A1,Th3;
end;

theorem Th28:
  ('not' 'not' p => q) => (p => q) in TAUT(A) & (p => q) => ('not'
  'not' p => q) in TAUT(A)
proof
  p => 'not' 'not' p in TAUT(A) by Th27;
  hence ('not' 'not' p => q) => (p => q) in TAUT(A) by Th2;
  'not' 'not' p => p in TAUT(A) by Th25;
  hence thesis by Th2;
end;

theorem Th29:
  (p => 'not' 'not' q) => (p => q) in TAUT(A) & (p => q) => (p =>
  'not' 'not' q) in TAUT(A)
proof
  (p => ('not' 'not' q => q)) => ((p => 'not' 'not' q) => (p => q)) in
  TAUT(A) & p => ('not' 'not' q => q) in TAUT(A) by Th11,Th13,Th25;
  hence (p => 'not' 'not' q) => (p => q) in TAUT(A) by CQC_THE1:46;
  (p => (q => 'not' 'not' q)) => ((p => q) => (p => 'not' 'not' q)) in
  TAUT(A) & p => (q => 'not' 'not' q) in TAUT(A) by Th11,Th13,Th27;
  hence thesis by CQC_THE1:46;
end;

theorem Th30:
  (p => 'not' q) => (q => 'not' p) in TAUT(A)
proof
  (p => 'not' q) => ('not' 'not' q => 'not' p) in TAUT(A) & ('not' 'not' q =>
  'not' p) => (q => 'not' p) in TAUT(A) by Th26,Th28;
  hence thesis by Th3;
end;

theorem Th31:
  ('not' p => q) => ('not' q => p) in TAUT(A)
proof
  ('not' p => q) => ('not' q => 'not' 'not' p) in TAUT(A) & ('not' q => 'not'
  'not' p) => ('not' q => p) in TAUT(A) by Th26,Th29;
  hence thesis by Th3;
end;

theorem
  (p => 'not' p) => 'not' p in TAUT(A)
proof
  ('not' 'not' p => 'not' p) => 'not' p in TAUT(A) & (p => 'not' p) => ('not'
  'not' p => 'not' p) in TAUT(A) by Th28,CQC_THE1:42;
  hence thesis by Th3;
end;

theorem
  'not' p => (p => q) in TAUT(A)
proof
  'not' p => ('not' 'not' p => q) in TAUT(A) & ('not' 'not' p => q) => (p =>
  q) in TAUT(A) by Th28,CQC_THE1:43;
  hence thesis by Th3;
end;

theorem Th34:
  p => q in TAUT(A) iff 'not' q => 'not' p in TAUT(A)
proof
  (p => q) => ('not' q => 'not' p) in TAUT(A) by Th26;
  hence p => q in TAUT(A) implies 'not' q => 'not' p in TAUT(A) by CQC_THE1:46;
  ('not' q => 'not' p) => (p => q) in TAUT(A) by Th24;
  hence 'not' q => 'not' p in TAUT(A) implies p => q in TAUT(A) by CQC_THE1:46;
end;

theorem
  'not' p => 'not' q in TAUT(A) implies q => p in TAUT(A) by Th34;

theorem
  p in TAUT(A) iff 'not' 'not' p in TAUT(A)
proof
  thus p in TAUT(A) implies 'not' 'not' p in TAUT(A)
  proof
    assume
A1: p in TAUT(A);
    p => 'not' 'not' p in TAUT(A) by Th27;
    hence thesis by A1,CQC_THE1:46;
  end;
  assume
A2: 'not' 'not' p in TAUT(A);
  'not' 'not' p => p in TAUT(A) by Th25;
  hence thesis by A2,CQC_THE1:46;
end;

theorem
  (p => q) in TAUT(A) iff (p => 'not' 'not' q) in TAUT(A)
proof
  thus (p => q) in TAUT(A) implies (p => 'not' 'not' q) in TAUT(A)
  proof
    assume
A1: p => q in TAUT(A);
    (p => q) => (p => 'not' 'not' q) in TAUT(A) by Th29;
    hence thesis by A1,CQC_THE1:46;
  end;
  assume
A2: p => 'not' 'not' q in TAUT(A);
  (p => 'not' 'not' q) => (p => q) in TAUT(A) by Th29;
  hence thesis by A2,CQC_THE1:46;
end;

theorem
  (p => q) in TAUT(A) iff ('not' 'not' p => q) in TAUT(A)
proof
  thus (p => q) in TAUT(A) implies ('not' 'not' p => q) in TAUT(A)
  proof
    assume
A1: p => q in TAUT(A);
    (p => q) => ('not' 'not' p => q) in TAUT(A) by Th28;
    hence thesis by A1,CQC_THE1:46;
  end;
  assume
A2: 'not' 'not' p => q in TAUT(A);
  ('not' 'not' p => q) => (p => q) in TAUT(A) by Th28;
  hence thesis by A2,CQC_THE1:46;
end;

theorem
  p => 'not' q in TAUT(A) implies q => 'not' p in TAUT(A)
proof
  assume
A1: p => 'not' q in TAUT(A);
  (p => 'not' q) => (q => 'not' p) in TAUT(A) by Th30;
  hence thesis by A1,CQC_THE1:46;
end;

theorem
  'not' p => q in TAUT(A) implies 'not' q => p in TAUT(A)
proof
  assume
A1: 'not' p => q in TAUT(A);
  ('not' p => q) => ('not' q => p) in TAUT(A) by Th31;
  hence thesis by A1,CQC_THE1:46;
end;

:: predykat |- i schematy konsekwencji

registration
  let A,p,q,r;
  cluster (p => q) => ((q => r) => (p => r)) -> valid;
coherence
by Th1;
end;

theorem
  p => q is valid implies (q => r) => (p => r) is valid
proof
  assume
A1: p => q is valid;
  (p => q) => ((q => r) => (p => r)) is valid;
  hence thesis by A1,CQC_THE1:65;
end;

theorem Th42:
  p => q is valid & q => r is valid implies p => r is valid
by Th3;

registration
  let A,p;
  cluster p => p -> valid;
coherence
by Th4;
end;

registration
  let A,p,q;
  cluster p => (q => p) -> valid;
coherence
by Th5;
end;

theorem
  p is valid implies q => p is valid
by Th13;

registration
  let A,p,q,s;
  cluster (s => (q => p)) => (q => (s => p)) -> valid;
coherence
by Th8;
end;

theorem Th44:
  p => (q => r) is valid implies q => (p => r) is valid
by Th15;

theorem
  p => (q => r) is valid & q is valid implies p => r is valid
proof
  assume p => (q => r) is valid;
  then q => (p => r) is valid by Th44;
  hence thesis by CQC_THE1:65;
end;

theorem
  p => VERUM(A) is valid & 'not' VERUM(A) => p is valid
by Th13,CQC_THE1:41,Th12;

registration
  let A,p,q;
  cluster p => ((p => q) => q) -> valid;
coherence
by Th7;
end;

registration
  let A,q,r;
  cluster (q => (q => r)) => (q => r) -> valid;
coherence
by Th10;
end;

theorem
  q => (q => r) is valid implies q => r is valid
proof
  assume
A1: q => (q => r) is valid;
  (q => (q => r)) => (q => r) is valid;
  hence thesis by A1,CQC_THE1:65;
end;

registration
  let A,p,q,r;
  cluster (p => (q => r)) => ((p => q) => (p => r)) -> valid;
coherence
by Th11;
end;

theorem Th48:
  p => (q => r) is valid implies (p => q) => (p => r) is valid
proof
  assume
A1: p => (q => r) is valid;
  (p => (q => r)) => ((p => q) => (p => r)) is valid;
  hence thesis by A1,CQC_THE1:65;
end;

theorem
  p => (q => r) is valid & p => q is valid implies p => r is valid
proof
  assume that
A1: p => (q => r) is valid and
A2: p => q is valid;
  (p => q) => (p => r) is valid by A1,Th48;
  hence thesis by A2,CQC_THE1:65;
end;

registration
  let A,p,q,r;
  cluster ((p => q) => r) => (q => r) -> valid;
coherence
by Th6;
end;

theorem
  (p => q) => r is valid implies q => r is valid
proof
  assume
A1: (p => q) => r is valid;
  ((p => q) => r) => (q => r) is valid;
  hence thesis by A1,CQC_THE1:65;
end;

registration
  let A,p,q,r;
  cluster (p => q) => ((r => p) => (r => q)) -> valid;
coherence
by Th9;
end;

theorem
  p => q is valid implies (r => p) => (r => q) is valid
proof
  assume
A1: p => q is valid;
  (p => q) => ((r => p) => (r => q)) is valid;
  hence thesis by A1,CQC_THE1:65;
end;

registration
  let A,p,q;
  cluster (p => q) => ('not' q => 'not' p) -> valid;
coherence
by Th26;
end;

registration
  let A,p,q;
  cluster ('not' p => 'not' q) => (q => p) ->  valid;
coherence
by Th24;
end;

theorem
  'not' p => 'not' q is valid iff q => p is valid
proof
  thus 'not' p => 'not' q is valid implies q => p is valid
  proof
    assume
A1: 'not' p => 'not' q is valid;
    ('not' p => 'not' q) => (q => p) is valid;
    hence thesis by A1,CQC_THE1:65;
  end;
  assume
A2: q => p is valid;
  (q => p) => ('not' p => 'not' q) is valid;
  hence thesis by A2,CQC_THE1:65;
end;

registration
  let A,p;
  cluster p => 'not' 'not' p -> valid;
coherence
by Th27;
end;

registration
  let A,p;
  cluster 'not' 'not' p => p -> valid;
coherence
by Th25;
end;

theorem
  'not' 'not' p is valid iff p is valid
proof
  thus 'not' 'not' p is valid implies p is valid
  proof
    assume
A1: 'not' 'not' p is valid;
    'not' 'not' p => p is valid;
    hence thesis by A1,CQC_THE1:65;
  end;
  assume
A2: p is valid;
  p => 'not' 'not' p is valid;
  hence thesis by A2,CQC_THE1:65;
end;

registration
  let A,p,q;
  cluster ('not' 'not' p => q) => (p => q) -> valid;
coherence
by Th28;
end;

theorem
  'not' 'not' p => q is valid iff p => q is valid
proof
  thus 'not' 'not' p => q is valid implies p => q is valid
  proof
    assume
A1: 'not' 'not' p => q is valid;
    ('not' 'not' p => q) => (p => q) is valid;
    hence thesis by A1,CQC_THE1:65;
  end;
  assume
A2: p => q is valid;
  'not' 'not' p => p is valid;
  hence thesis by A2,Th42;
end;

registration
  let A,p,q;
  cluster (p => 'not' 'not' q) => (p => q) -> valid;
coherence
by Th29;
end;

theorem
  p => 'not' 'not' q is valid iff p => q is valid
proof
  thus p => 'not' 'not' q is valid implies p => q is valid
  proof
    assume
A1: p => 'not' 'not' q is valid;
    (p => 'not' 'not' q) => (p => q) is valid;
    hence thesis by A1,CQC_THE1:65;
  end;
  assume
A2: p => q is valid;
  q => 'not' 'not' q is valid;
  hence thesis by A2,Th42;
end;

registration
  let A,p,q;
  cluster (p => 'not' q) => (q => 'not' p) -> valid;
coherence
by Th30;
end;

theorem
  p => 'not' q is valid implies q => 'not' p is valid
proof
  assume
A1: p => 'not' q is valid;
  (p => 'not' q) => (q => 'not' p) is valid;
  hence thesis by A1,CQC_THE1:65;
end;

registration
  let A,p,q;
  cluster ('not' p => q) => ('not' q => p) -> valid;
coherence
by Th31;
end;

theorem
  'not' p => q is valid implies 'not' q => p is valid
proof
  assume
A1: 'not' p => q is valid;
  ('not' p => q) => ('not' q => p) is valid;
  hence thesis by A1,CQC_THE1:65;
end;

theorem
  X|- p => q implies X|- (q => r) => (p => r)
proof
  assume
A1: X|- p => q;
  X|- (p => q) => ((q => r) => (p => r)) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem Th59:
  X|- p => q & X|- q => r implies X|- p => r
proof
  assume that
A1: X|- p => q and
A2: X|- q => r;
  X|- (p => q) => ((q => r) => (p => r)) by CQC_THE1:59;
  then X|- (q => r) => (p => r) by A1,CQC_THE1:55;
  hence thesis by A2,CQC_THE1:55;
end;

theorem
  X|- p => p by CQC_THE1:59;

theorem
  X|- p implies X|- q => p
proof
  assume
A1: X|- p;
  X|- p => (q => p) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem
  X |- p implies X |- (p => q) => q
proof
  assume
A1: X |- p;
  X |- p => ((p => q) => q) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem Th63:
  X |- p => (q => r) implies X |- q => (p => r)
proof
  assume
A1: X |- p => (q => r);
  X|- (p => (q => r)) => (q => (p => r)) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem
  X |- p => (q => r) & X |- q implies X |- p => r
proof
  assume X |- p => (q => r);
  then X |- q => (p => r) by Th63;
  hence thesis by CQC_THE1:55;
end;

theorem
  X |- p => (p => q) implies X |- p => q
proof
  assume
A1: X |- p => (p => q);
  X|- (p => (p => q)) => (p => q) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem
  X |- (p => q) => r implies X |- q => r
proof
  assume
A1: X |- (p => q) => r;
  X|- ((p => q) => r) => (q => r) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem Th67:
  X |- p => (q => r) implies X |- (p => q) => (p =>r)
proof
  assume
A1: X|- p => (q => r);
  X |- (p => (q => r)) => ((p => q) => (p =>r)) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem
  X |- p => (q => r) & X|- p => q implies X |- p => r
proof
  assume X|- p => (q => r);
  then X |- (p => q) => (p =>r) by Th67;
  hence thesis by CQC_THE1:55;
end;

theorem
  X|- 'not' p => 'not' q iff X|- q => p
proof
  thus X|- 'not' p => 'not' q implies X|- q => p
  proof
    assume
A1: X|- 'not' p => 'not' q;
    X|- ('not' p => 'not' q) => (q => p) by CQC_THE1:59;
    hence thesis by A1,CQC_THE1:55;
  end;
  assume
A2: X|- q => p;
  X|- (q => p) => ('not' p => 'not' q) by CQC_THE1:59;
  hence thesis by A2,CQC_THE1:55;
end;

theorem
  X|- 'not' 'not' p iff X|- p
proof
  thus X|- 'not' 'not' p implies X|- p
  proof
    assume
A1: X|- 'not' 'not' p;
    X|- 'not' 'not' p => p by CQC_THE1:59;
    hence thesis by A1,CQC_THE1:55;
  end;
  assume
A2: X|- p;
  X|- p => 'not' 'not' p by CQC_THE1:59;
  hence thesis by A2,CQC_THE1:55;
end;

theorem
  X|- p => 'not' 'not' q iff X|- p => q
proof
  thus X|- p => 'not' 'not' q implies X|- p => q
  proof
    assume
A1: X|- p => 'not' 'not' q;
    X|- (p => 'not' 'not' q) => (p => q) by CQC_THE1:59;
    hence thesis by A1,CQC_THE1:55;
  end;
  assume
A2: X|- p => q;
  X|- q => 'not' 'not' q by CQC_THE1:59;
  hence thesis by A2,Th59;
end;

theorem
  X|- 'not' 'not' p => q iff X|- p => q
proof
  thus X|- 'not' 'not' p => q implies X|- p => q
  proof
    assume
A1: X|- 'not' 'not' p => q;
    X|- ('not' 'not' p => q) => (p => q) by CQC_THE1:59;
    hence thesis by A1,CQC_THE1:55;
  end;
  assume
A2: X|- p => q;
  X|- 'not' 'not' p => p by CQC_THE1:59;
  hence thesis by A2,Th59;
end;

theorem Th73:
  X|- p => 'not' q implies X|- q => 'not' p
proof
  assume
A1: X|- p => 'not' q;
  X|- (p => 'not' q) => (q => 'not' p) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem Th74:
  X|- 'not' p => q implies X|- 'not' q => p
proof
  assume
A1: X|- 'not' p => q;
  X|- ('not' p => q) => ('not' q => p) by CQC_THE1:59;
  hence thesis by A1,CQC_THE1:55;
end;

theorem
  X|- p => 'not' q & X |- q implies X|- 'not' p
proof
  assume X|- p => 'not' q;
  then X |- q => 'not' p by Th73;
  hence thesis by CQC_THE1:55;
end;

theorem
  X|- 'not' p => q & X |- 'not' q implies X|- p
proof
  assume X|- 'not' p => q;
  then X |- 'not' q => p by Th74;
  hence thesis by CQC_THE1:55;
end;