Article CQC_THE1, MML version 4.99.1005

:: CQC_THE1:th 11
theorem
for b1 being Element of NAT holds
   {b2 where b2 is Element of NAT: b2 <= b1 + 1} = {b2 where b2 is Element of NAT: b2 <= b1} \/ {b1 + 1};

:: CQC_THE1:th 12
theorem
for b1 being Element of NAT holds
   {b2 where b2 is Element of NAT: b2 <= b1} is finite;

:: CQC_THE1:th 13
theorem
for b1, b2, b3 being set
      st b1 is finite & b1 c= [:b2,b3:]
   holds ex b4, b5 being set st
      b4 is finite & b4 c= b2 & b5 is finite & b5 c= b3 & b1 c= [:b4,b5:];

:: CQC_THE1:th 14
theorem
for b1, b2, b3 being set
      st b1 is finite & b2 is finite & b1 c= [:b3,b2:]
   holds ex b4 being set st
      b4 is finite & b4 c= b3 & b1 c= [:b4,b2:];

:: CQC_THE1:attrnot 1 => CQC_THE1:attr 1
definition
  let a1 be Element of bool CQC-WFF;
  attr a1 is being_a_theory means
    VERUM in a1 &
     (for b1, b2, b3 being Element of CQC-WFF
     for b4 being Element of QC-WFF
     for b5, b6 being Element of bound_QC-variables holds
     (('not' b1) => b1) => b1 in a1 &
      b1 => (('not' b1) => b2) in a1 &
      (b1 => b2) => (('not' (b2 '&' b3)) => 'not' (b1 '&' b3)) in a1 &
      (b1 '&' b2) => (b2 '&' b1) in a1 &
      (b1 in a1 & b1 => b2 in a1 implies b2 in a1) &
      (All(b5,b1)) => b1 in a1 &
      (b1 => b2 in a1 & not b5 in still_not-bound_in b1 implies b1 => All(b5,b2) in a1) &
      (b4 . b5 in CQC-WFF & b4 . b6 in CQC-WFF & not b5 in still_not-bound_in b4 & b4 . b5 in a1 implies b4 . b6 in a1));
end;

:: CQC_THE1:dfs 1
definiens
  let a1 be Element of bool CQC-WFF;
To prove
     a1 is being_a_theory
it is sufficient to prove
  thus VERUM in a1 &
     (for b1, b2, b3 being Element of CQC-WFF
     for b4 being Element of QC-WFF
     for b5, b6 being Element of bound_QC-variables holds
     (('not' b1) => b1) => b1 in a1 &
      b1 => (('not' b1) => b2) in a1 &
      (b1 => b2) => (('not' (b2 '&' b3)) => 'not' (b1 '&' b3)) in a1 &
      (b1 '&' b2) => (b2 '&' b1) in a1 &
      (b1 in a1 & b1 => b2 in a1 implies b2 in a1) &
      (All(b5,b1)) => b1 in a1 &
      (b1 => b2 in a1 & not b5 in still_not-bound_in b1 implies b1 => All(b5,b2) in a1) &
      (b4 . b5 in CQC-WFF & b4 . b6 in CQC-WFF & not b5 in still_not-bound_in b4 & b4 . b5 in a1 implies b4 . b6 in a1));

:: CQC_THE1:def 1
theorem
for b1 being Element of bool CQC-WFF holds
      b1 is being_a_theory
   iff
      VERUM in b1 &
       (for b2, b3, b4 being Element of CQC-WFF
       for b5 being Element of QC-WFF
       for b6, b7 being Element of bound_QC-variables holds
       (('not' b2) => b2) => b2 in b1 &
        b2 => (('not' b2) => b3) in b1 &
        (b2 => b3) => (('not' (b3 '&' b4)) => 'not' (b2 '&' b4)) in b1 &
        (b2 '&' b3) => (b3 '&' b2) in b1 &
        (b2 in b1 & b2 => b3 in b1 implies b3 in b1) &
        (All(b6,b2)) => b2 in b1 &
        (b2 => b3 in b1 & not b6 in still_not-bound_in b2 implies b2 => All(b6,b3) in b1) &
        (b5 . b6 in CQC-WFF & b5 . b7 in CQC-WFF & not b6 in still_not-bound_in b5 & b5 . b6 in b1 implies b5 . b7 in b1));

:: CQC_THE1:prednot 1 => CQC_THE1:attr 1
notation
  let a1 be Element of bool CQC-WFF;
  synonym a1 is_a_theory for being_a_theory;
end;

:: CQC_THE1:th 25
theorem
for b1, b2 being Element of bool CQC-WFF
      st b1 is being_a_theory & b2 is being_a_theory
   holds b1 /\ b2 is being_a_theory;

:: CQC_THE1:funcnot 1 => CQC_THE1:func 1
definition
  let a1 be Element of bool CQC-WFF;
  func Cn A1 -> Element of bool CQC-WFF means
    for b1 being Element of CQC-WFF holds
          b1 in it
       iff
          for b2 being Element of bool CQC-WFF
                st b2 is being_a_theory & a1 c= b2
             holds b1 in b2;
end;

:: CQC_THE1:def 2
theorem
for b1, b2 being Element of bool CQC-WFF holds
   b2 = Cn b1
iff
   for b3 being Element of CQC-WFF holds
         b3 in b2
      iff
         for b4 being Element of bool CQC-WFF
               st b4 is being_a_theory & b1 c= b4
            holds b3 in b4;

:: CQC_THE1:th 27
theorem
for b1 being Element of bool CQC-WFF holds
   VERUM in Cn b1;

:: CQC_THE1:th 28
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of CQC-WFF holds
   (('not' b2) => b2) => b2 in Cn b1;

:: CQC_THE1:th 29
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being Element of CQC-WFF holds
b2 => (('not' b2) => b3) in Cn b1;

:: CQC_THE1:th 30
theorem
for b1 being Element of bool CQC-WFF
for b2, b3, b4 being Element of CQC-WFF holds
(b2 => b3) => (('not' (b3 '&' b4)) => 'not' (b2 '&' b4)) in Cn b1;

:: CQC_THE1:th 31
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being Element of CQC-WFF holds
(b2 '&' b3) => (b3 '&' b2) in Cn b1;

:: CQC_THE1:th 32
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being Element of CQC-WFF
      st b2 in Cn b1 & b2 => b3 in Cn b1
   holds b3 in Cn b1;

:: CQC_THE1:th 33
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of CQC-WFF
for b3 being Element of bound_QC-variables holds
   (All(b3,b2)) => b2 in Cn b1;

:: CQC_THE1:th 34
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being Element of CQC-WFF
for b4 being Element of bound_QC-variables
      st b2 => b3 in Cn b1 & not b4 in still_not-bound_in b2
   holds b2 => All(b4,b3) in Cn b1;

:: CQC_THE1:th 35
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of QC-WFF
for b3, b4 being Element of bound_QC-variables
      st b2 . b3 in CQC-WFF & b2 . b4 in CQC-WFF & not b3 in still_not-bound_in b2 & b2 . b3 in Cn b1
   holds b2 . b4 in Cn b1;

:: CQC_THE1:th 36
theorem
for b1 being Element of bool CQC-WFF holds
   Cn b1 is being_a_theory;

:: CQC_THE1:th 37
theorem
for b1, b2 being Element of bool CQC-WFF
      st b1 is being_a_theory & b2 c= b1
   holds Cn b2 c= b1;

:: CQC_THE1:th 38
theorem
for b1 being Element of bool CQC-WFF holds
   b1 c= Cn b1;

:: CQC_THE1:th 39
theorem
for b1, b2 being Element of bool CQC-WFF
      st b1 c= b2
   holds Cn b1 c= Cn b2;

:: CQC_THE1:th 40
theorem
for b1 being Element of bool CQC-WFF holds
   Cn Cn b1 = Cn b1;

:: CQC_THE1:th 41
theorem
for b1 being Element of bool CQC-WFF holds
      b1 is being_a_theory
   iff
      Cn b1 = b1;

:: CQC_THE1:funcnot 2 => CQC_THE1:func 2
definition
  func Proof_Step_Kinds -> set equals
    {b1 where b1 is Element of NAT: b1 <= 9};
end;

:: CQC_THE1:def 3
theorem
Proof_Step_Kinds = {b1 where b1 is Element of NAT: b1 <= 9};

:: CQC_THE1:funcreg 1
registration
  cluster Proof_Step_Kinds -> non empty;
end;

:: CQC_THE1:th 43
theorem
0 in Proof_Step_Kinds & 1 in Proof_Step_Kinds & 2 in Proof_Step_Kinds & 3 in Proof_Step_Kinds & 4 in Proof_Step_Kinds & 5 in Proof_Step_Kinds & 6 in Proof_Step_Kinds & 7 in Proof_Step_Kinds & 8 in Proof_Step_Kinds & 9 in Proof_Step_Kinds;

:: CQC_THE1:th 44
theorem
Proof_Step_Kinds is finite;

:: CQC_THE1:th 45
theorem
for b1 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
for b2 being natural set
      st 1 <= b2 & b2 <= len b1 & (b1 . b2) `2 <> 0 & (b1 . b2) `2 <> 1 & (b1 . b2) `2 <> 2 & (b1 . b2) `2 <> 3 & (b1 . b2) `2 <> 4 & (b1 . b2) `2 <> 5 & (b1 . b2) `2 <> 6 & (b1 . b2) `2 <> 7 & (b1 . b2) `2 <> 8
   holds (b1 . b2) `2 = 9;

:: CQC_THE1:prednot 2 => CQC_THE1:pred 1
definition
  let a1 be FinSequence of [:CQC-WFF,Proof_Step_Kinds:];
  let a2 be natural set;
  let a3 be Element of bool CQC-WFF;
  pred A1,A2 is_a_correct_step_wrt A3 means
    (a1 . a2) `1 in a3
    if (a1 . a2) `2 = 0,
(a1 . a2) `1 = VERUM
    if (a1 . a2) `2 = 1,
ex b1 being Element of CQC-WFF st
       (a1 . a2) `1 = (('not' b1) => b1) => b1
    if (a1 . a2) `2 = 2,
ex b1, b2 being Element of CQC-WFF st
       (a1 . a2) `1 = b1 => (('not' b1) => b2)
    if (a1 . a2) `2 = 3,
ex b1, b2, b3 being Element of CQC-WFF st
       (a1 . a2) `1 = (b1 => b2) => (('not' (b2 '&' b3)) => 'not' (b1 '&' b3))
    if (a1 . a2) `2 = 4,
ex b1, b2 being Element of CQC-WFF st
       (a1 . a2) `1 = (b1 '&' b2) => (b2 '&' b1)
    if (a1 . a2) `2 = 5,
ex b1 being Element of CQC-WFF st
       ex b2 being Element of bound_QC-variables st
          (a1 . a2) `1 = (All(b2,b1)) => b1
    if (a1 . a2) `2 = 6,
ex b1, b2 being Element of NAT st
       ex b3, b4 being Element of CQC-WFF st
          1 <= b1 & b1 < a2 & 1 <= b2 & b2 < b1 & b3 = (a1 . b2) `1 & b4 = (a1 . a2) `1 & (a1 . b1) `1 = b3 => b4
    if (a1 . a2) `2 = 7,
ex b1 being Element of NAT st
       ex b2, b3 being Element of CQC-WFF st
          ex b4 being Element of bound_QC-variables st
             1 <= b1 & b1 < a2 & (a1 . b1) `1 = b2 => b3 & not b4 in still_not-bound_in b2 & (a1 . a2) `1 = b2 => All(b4,b3)
    if (a1 . a2) `2 = 8
    otherwise   case (a1 . a2) `2 = 9;
    thus ex b1 being Element of NAT st
       ex b2, b3 being Element of bound_QC-variables st
          ex b4 being Element of QC-WFF st
             1 <= b1 & b1 < a2 & b4 . b2 in CQC-WFF & b4 . b3 in CQC-WFF & not b2 in still_not-bound_in b4 & b4 . b2 = (a1 . b1) `1 & b4 . b3 = (a1 . a2) `1;
  end;
;
end;

:: CQC_THE1:dfs 4
definiens
  let a1 be FinSequence of [:CQC-WFF,Proof_Step_Kinds:];
  let a2 be natural set;
  let a3 be Element of bool CQC-WFF;
To prove
     a1,a2 is_a_correct_step_wrt a3
it is sufficient to prove
  per cases;
  case (a1 . a2) `2 = 0;
    thus (a1 . a2) `1 in a3;
  end;
  case (a1 . a2) `2 = 1;
    thus (a1 . a2) `1 = VERUM;
  end;
  case (a1 . a2) `2 = 2;
    thus ex b1 being Element of CQC-WFF st
       (a1 . a2) `1 = (('not' b1) => b1) => b1;
  end;
  case (a1 . a2) `2 = 3;
    thus ex b1, b2 being Element of CQC-WFF st
       (a1 . a2) `1 = b1 => (('not' b1) => b2);
  end;
  case (a1 . a2) `2 = 4;
    thus ex b1, b2, b3 being Element of CQC-WFF st
       (a1 . a2) `1 = (b1 => b2) => (('not' (b2 '&' b3)) => 'not' (b1 '&' b3));
  end;
  case (a1 . a2) `2 = 5;
    thus ex b1, b2 being Element of CQC-WFF st
       (a1 . a2) `1 = (b1 '&' b2) => (b2 '&' b1);
  end;
  case (a1 . a2) `2 = 6;
    thus ex b1 being Element of CQC-WFF st
       ex b2 being Element of bound_QC-variables st
          (a1 . a2) `1 = (All(b2,b1)) => b1;
  end;
  case (a1 . a2) `2 = 7;
    thus ex b1, b2 being Element of NAT st
       ex b3, b4 being Element of CQC-WFF st
          1 <= b1 & b1 < a2 & 1 <= b2 & b2 < b1 & b3 = (a1 . b2) `1 & b4 = (a1 . a2) `1 & (a1 . b1) `1 = b3 => b4;
  end;
  case (a1 . a2) `2 = 8;
    thus ex b1 being Element of NAT st
       ex b2, b3 being Element of CQC-WFF st
          ex b4 being Element of bound_QC-variables st
             1 <= b1 & b1 < a2 & (a1 . b1) `1 = b2 => b3 & not b4 in still_not-bound_in b2 & (a1 . a2) `1 = b2 => All(b4,b3);
  end;
  case (a1 . a2) `2 <> 0 & (a1 . a2) `2 <> 1 & (a1 . a2) `2 <> 2 & (a1 . a2) `2 <> 3 & (a1 . a2) `2 <> 4 & (a1 . a2) `2 <> 5 & (a1 . a2) `2 <> 6 & (a1 . a2) `2 <> 7 & (a1 . a2) `2 <> 8;
    thus   case (a1 . a2) `2 = 9;
    thus ex b1 being Element of NAT st
       ex b2, b3 being Element of bound_QC-variables st
          ex b4 being Element of QC-WFF st
             1 <= b1 & b1 < a2 & b4 . b2 in CQC-WFF & b4 . b3 in CQC-WFF & not b2 in still_not-bound_in b4 & b4 . b2 = (a1 . b1) `1 & b4 . b3 = (a1 . a2) `1;
  end;
;
  end;

:: CQC_THE1:def 4
theorem
for b1 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
for b2 being natural set
for b3 being Element of bool CQC-WFF holds
   ((b1 . b2) `2 = 0 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       (b1 . b2) `1 in b3)) &
    ((b1 . b2) `2 = 1 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       (b1 . b2) `1 = VERUM)) &
    ((b1 . b2) `2 = 2 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       ex b4 being Element of CQC-WFF st
          (b1 . b2) `1 = (('not' b4) => b4) => b4)) &
    ((b1 . b2) `2 = 3 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       ex b4, b5 being Element of CQC-WFF st
          (b1 . b2) `1 = b4 => (('not' b4) => b5))) &
    ((b1 . b2) `2 = 4 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       ex b4, b5, b6 being Element of CQC-WFF st
          (b1 . b2) `1 = (b4 => b5) => (('not' (b5 '&' b6)) => 'not' (b4 '&' b6)))) &
    ((b1 . b2) `2 = 5 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       ex b4, b5 being Element of CQC-WFF st
          (b1 . b2) `1 = (b4 '&' b5) => (b5 '&' b4))) &
    ((b1 . b2) `2 = 6 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       ex b4 being Element of CQC-WFF st
          ex b5 being Element of bound_QC-variables st
             (b1 . b2) `1 = (All(b5,b4)) => b4)) &
    ((b1 . b2) `2 = 7 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       ex b4, b5 being Element of NAT st
          ex b6, b7 being Element of CQC-WFF st
             1 <= b4 & b4 < b2 & 1 <= b5 & b5 < b4 & b6 = (b1 . b5) `1 & b7 = (b1 . b2) `1 & (b1 . b4) `1 = b6 => b7)) &
    ((b1 . b2) `2 = 8 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       ex b4 being Element of NAT st
          ex b5, b6 being Element of CQC-WFF st
             ex b7 being Element of bound_QC-variables st
                1 <= b4 & b4 < b2 & (b1 . b4) `1 = b5 => b6 & not b7 in still_not-bound_in b5 & (b1 . b2) `1 = b5 => All(b7,b6))) &
    ((b1 . b2) `2 = 9 implies    (b1,b2 is_a_correct_step_wrt b3
    iff
       ex b4 being Element of NAT st
          ex b5, b6 being Element of bound_QC-variables st
             ex b7 being Element of QC-WFF st
                1 <= b4 & b4 < b2 & b7 . b5 in CQC-WFF & b7 . b6 in CQC-WFF & not b5 in still_not-bound_in b7 & b7 . b5 = (b1 . b4) `1 & b7 . b6 = (b1 . b2) `1));

:: CQC_THE1:prednot 3 => CQC_THE1:pred 2
definition
  let a1 be Element of bool CQC-WFF;
  let a2 be FinSequence of [:CQC-WFF,Proof_Step_Kinds:];
  pred A2 is_a_proof_wrt A1 means
    a2 <> {} &
     (for b1 being Element of NAT
           st 1 <= b1 & b1 <= len a2
        holds a2,b1 is_a_correct_step_wrt a1);
end;

:: CQC_THE1:dfs 5
definiens
  let a1 be Element of bool CQC-WFF;
  let a2 be FinSequence of [:CQC-WFF,Proof_Step_Kinds:];
To prove
     a2 is_a_proof_wrt a1
it is sufficient to prove
  thus a2 <> {} &
     (for b1 being Element of NAT
           st 1 <= b1 & b1 <= len a2
        holds a2,b1 is_a_correct_step_wrt a1);

:: CQC_THE1:def 5
theorem
for b1 being Element of bool CQC-WFF
for b2 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:] holds
      b2 is_a_proof_wrt b1
   iff
      b2 <> {} &
       (for b3 being Element of NAT
             st 1 <= b3 & b3 <= len b2
          holds b2,b3 is_a_correct_step_wrt b1);

:: CQC_THE1:th 57
theorem
for b1 being Element of bool CQC-WFF
for b2 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st b2 is_a_proof_wrt b1
   holds proj2 b2 <> {};

:: CQC_THE1:th 58
theorem
for b1 being Element of bool CQC-WFF
for b2 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st b2 is_a_proof_wrt b1
   holds 1 <= len b2;

:: CQC_THE1:th 59
theorem
for b1 being Element of bool CQC-WFF
for b2 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st b2 is_a_proof_wrt b1 & (b2 . 1) `2 <> 0 & (b2 . 1) `2 <> 1 & (b2 . 1) `2 <> 2 & (b2 . 1) `2 <> 3 & (b2 . 1) `2 <> 4 & (b2 . 1) `2 <> 5
   holds (b2 . 1) `2 = 6;

:: CQC_THE1:th 60
theorem
for b1 being Element of NAT
for b2 being Element of bool CQC-WFF
for b3, b4 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st 1 <= b1 & b1 <= len b3
   holds    b3,b1 is_a_correct_step_wrt b2
   iff
      b3 ^ b4,b1 is_a_correct_step_wrt b2;

:: CQC_THE1:th 61
theorem
for b1 being Element of NAT
for b2 being Element of bool CQC-WFF
for b3, b4 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st 1 <= b1 & b1 <= len b3 & b3,b1 is_a_correct_step_wrt b2
   holds b4 ^ b3,b1 + len b4 is_a_correct_step_wrt b2;

:: CQC_THE1:th 62
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st b2 is_a_proof_wrt b1 & b3 is_a_proof_wrt b1
   holds b2 ^ b3 is_a_proof_wrt b1;

:: CQC_THE1:th 63
theorem
for b1, b2 being Element of bool CQC-WFF
for b3 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st b3 is_a_proof_wrt b1 & b1 c= b2
   holds b3 is_a_proof_wrt b2;

:: CQC_THE1:th 64
theorem
for b1 being Element of NAT
for b2 being Element of bool CQC-WFF
for b3 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st b3 is_a_proof_wrt b2 & 1 <= b1 & b1 <= len b3
   holds (b3 . b1) `1 in Cn b2;

:: CQC_THE1:funcnot 3 => CQC_THE1:func 3
definition
  let a1 be FinSequence of [:CQC-WFF,Proof_Step_Kinds:];
  assume a1 <> {};
  func Effect A1 -> Element of CQC-WFF equals
    (a1 . len a1) `1;
end;

:: CQC_THE1:def 6
theorem
for b1 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st b1 <> {}
   holds Effect b1 = (b1 . len b1) `1;

:: CQC_THE1:th 66
theorem
for b1 being Element of bool CQC-WFF
for b2 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:]
      st b2 is_a_proof_wrt b1
   holds Effect b2 in Cn b1;

:: CQC_THE1:th 67
theorem
for b1 being Element of bool CQC-WFF holds
   b1 c= {b2 where b2 is Element of CQC-WFF: ex b3 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:] st
      b3 is_a_proof_wrt b1 & Effect b3 = b2};

:: CQC_THE1:th 68
theorem
for b1, b2 being Element of bool CQC-WFF
      st b1 = {b3 where b3 is Element of CQC-WFF: ex b4 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:] st
           b4 is_a_proof_wrt b2 & Effect b4 = b3}
   holds b1 is being_a_theory;

:: CQC_THE1:th 69
theorem
for b1 being Element of bool CQC-WFF holds
   {b2 where b2 is Element of CQC-WFF: ex b3 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:] st
      b3 is_a_proof_wrt b1 & Effect b3 = b2} = Cn b1;

:: CQC_THE1:th 70
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of CQC-WFF holds
      b2 in Cn b1
   iff
      ex b3 being FinSequence of [:CQC-WFF,Proof_Step_Kinds:] st
         b3 is_a_proof_wrt b1 & Effect b3 = b2;

:: CQC_THE1:th 71
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of CQC-WFF
      st b2 in Cn b1
   holds ex b3 being Element of bool CQC-WFF st
      b3 c= b1 & b3 is finite & b2 in Cn b3;

:: CQC_THE1:funcnot 4 => CQC_THE1:func 4
definition
  func TAUT -> Element of bool CQC-WFF equals
    Cn {} CQC-WFF;
end;

:: CQC_THE1:def 8
theorem
TAUT = Cn {} CQC-WFF;

:: CQC_THE1:th 74
theorem
for b1 being Element of bool CQC-WFF
      st b1 is being_a_theory
   holds TAUT c= b1;

:: CQC_THE1:th 75
theorem
for b1 being Element of bool CQC-WFF holds
   TAUT c= Cn b1;

:: CQC_THE1:th 76
theorem
TAUT is being_a_theory;

:: CQC_THE1:th 77
theorem
VERUM in TAUT;

:: CQC_THE1:th 78
theorem
for b1 being Element of CQC-WFF holds
   (('not' b1) => b1) => b1 in TAUT;

:: CQC_THE1:th 79
theorem
for b1, b2 being Element of CQC-WFF holds
b1 => (('not' b1) => b2) in TAUT;

:: CQC_THE1:th 80
theorem
for b1, b2, b3 being Element of CQC-WFF holds
(b1 => b2) => (('not' (b2 '&' b3)) => 'not' (b1 '&' b3)) in TAUT;

:: CQC_THE1:th 81
theorem
for b1, b2 being Element of CQC-WFF holds
(b1 '&' b2) => (b2 '&' b1) in TAUT;

:: CQC_THE1:th 82
theorem
for b1, b2 being Element of CQC-WFF
      st b1 in TAUT & b1 => b2 in TAUT
   holds b2 in TAUT;

:: CQC_THE1:th 83
theorem
for b1 being Element of CQC-WFF
for b2 being Element of bound_QC-variables holds
   (All(b2,b1)) => b1 in TAUT;

:: CQC_THE1:th 84
theorem
for b1, b2 being Element of CQC-WFF
for b3 being Element of bound_QC-variables
      st b1 => b2 in TAUT & not b3 in still_not-bound_in b1
   holds b1 => All(b3,b2) in TAUT;

:: CQC_THE1:th 85
theorem
for b1 being Element of QC-WFF
for b2, b3 being Element of bound_QC-variables
      st b1 . b2 in CQC-WFF & b1 . b3 in CQC-WFF & not b2 in still_not-bound_in b1 & b1 . b2 in TAUT
   holds b1 . b3 in TAUT;

:: CQC_THE1:prednot 4 => CQC_THE1:pred 3
definition
  let a1 be Element of bool CQC-WFF;
  let a2 be Element of QC-WFF;
  pred A1 |- A2 means
    a2 in Cn a1;
end;

:: CQC_THE1:dfs 8
definiens
  let a1 be Element of bool CQC-WFF;
  let a2 be Element of QC-WFF;
To prove
     a1 |- a2
it is sufficient to prove
  thus a2 in Cn a1;

:: CQC_THE1:def 9
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of QC-WFF holds
      b1 |- b2
   iff
      b2 in Cn b1;

:: CQC_THE1:th 87
theorem
for b1 being Element of bool CQC-WFF holds
   b1 |- VERUM;

:: CQC_THE1:th 88
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of CQC-WFF holds
   b1 |- (('not' b2) => b2) => b2;

:: CQC_THE1:th 89
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being Element of CQC-WFF holds
b1 |- b2 => (('not' b2) => b3);

:: CQC_THE1:th 90
theorem
for b1 being Element of bool CQC-WFF
for b2, b3, b4 being Element of CQC-WFF holds
b1 |- (b2 => b3) => (('not' (b3 '&' b4)) => 'not' (b2 '&' b4));

:: CQC_THE1:th 91
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being Element of CQC-WFF holds
b1 |- (b2 '&' b3) => (b3 '&' b2);

:: CQC_THE1:th 92
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being Element of CQC-WFF
      st b1 |- b2 & b1 |- b2 => b3
   holds b1 |- b3;

:: CQC_THE1:th 93
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of CQC-WFF
for b3 being Element of bound_QC-variables holds
   b1 |- (All(b3,b2)) => b2;

:: CQC_THE1:th 94
theorem
for b1 being Element of bool CQC-WFF
for b2, b3 being Element of CQC-WFF
for b4 being Element of bound_QC-variables
      st b1 |- b2 => b3 & not b4 in still_not-bound_in b2
   holds b1 |- b2 => All(b4,b3);

:: CQC_THE1:th 95
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of QC-WFF
for b3, b4 being Element of bound_QC-variables
      st b2 . b3 in CQC-WFF & b2 . b4 in CQC-WFF & not b3 in still_not-bound_in b2 & b1 |- b2 . b3
   holds b1 |- b2 . b4;

:: CQC_THE1:attrnot 2 => CQC_THE1:attr 2
definition
  let a1 be Element of QC-WFF;
  attr a1 is valid means
    {} CQC-WFF |- a1;
end;

:: CQC_THE1:dfs 9
definiens
  let a1 be Element of QC-WFF;
To prove
     a1 is valid
it is sufficient to prove
  thus {} CQC-WFF |- a1;

:: CQC_THE1:def 10
theorem
for b1 being Element of QC-WFF holds
      b1 is valid
   iff
      {} CQC-WFF |- b1;

:: CQC_THE1:prednot 5 => CQC_THE1:attr 2
notation
  let a1 be Element of QC-WFF;
  synonym |- a1 for valid;
end;

:: CQC_THE1:attrnot 3 => CQC_THE1:attr 2
definition
  let a1 be Element of QC-WFF;
  attr a1 is valid means
    a1 in TAUT;
end;

:: CQC_THE1:dfs 10
definiens
  let a1 be Element of QC-WFF;
To prove
     a1 is valid
it is sufficient to prove
  thus a1 in TAUT;

:: CQC_THE1:def 11
theorem
for b1 being Element of QC-WFF holds
      b1 is valid
   iff
      b1 in TAUT;

:: CQC_THE1:th 98
theorem
for b1 being Element of bool CQC-WFF
for b2 being Element of CQC-WFF
      st b2 is valid
   holds b1 |- b2;

:: CQC_THE1:th 99
theorem
VERUM is valid;

:: CQC_THE1:th 100
theorem
for b1 being Element of CQC-WFF holds
   (('not' b1) => b1) => b1 is valid;

:: CQC_THE1:th 101
theorem
for b1, b2 being Element of CQC-WFF holds
b1 => (('not' b1) => b2) is valid;

:: CQC_THE1:th 102
theorem
for b1, b2, b3 being Element of CQC-WFF holds
(b1 => b2) => (('not' (b2 '&' b3)) => 'not' (b1 '&' b3)) is valid;

:: CQC_THE1:th 103
theorem
for b1, b2 being Element of CQC-WFF holds
(b1 '&' b2) => (b2 '&' b1) is valid;

:: CQC_THE1:th 104
theorem
for b1, b2 being Element of CQC-WFF
      st b1 is valid & b1 => b2 is valid
   holds b2 is valid;

:: CQC_THE1:th 105
theorem
for b1 being Element of CQC-WFF
for b2 being Element of bound_QC-variables holds
   (All(b2,b1)) => b1 is valid;

:: CQC_THE1:th 106
theorem
for b1, b2 being Element of CQC-WFF
for b3 being Element of bound_QC-variables
      st b1 => b2 is valid & not b3 in still_not-bound_in b1
   holds b1 => All(b3,b2) is valid;

:: CQC_THE1:th 107
theorem
for b1 being Element of QC-WFF
for b2, b3 being Element of bound_QC-variables
      st b1 . b2 in CQC-WFF & b1 . b3 in CQC-WFF & not b2 in still_not-bound_in b1 & b1 . b2 is valid
   holds b1 . b3 is valid;