Article BCIALG_2, MML version 4.99.1005

:: BCIALG_2:funcnot 1 => BCIALG_2:func 1
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2, a3 be Element of the carrier of a1;
  let a4 be Element of NAT;
  func (A2,A3)to_power A4 -> Element of the carrier of a1 means
    ex b1 being Function-like quasi_total Relation of NAT,the carrier of a1 st
       it = b1 . a4 &
        b1 . 0 = a2 &
        (for b2 being Element of NAT
              st b2 < a4
           holds b1 . (b2 + 1) = (b1 . b2) \ a3);
end;

:: BCIALG_2:def 1
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1
for b4 being Element of NAT
for b5 being Element of the carrier of b1 holds
      b5 = (b2,b3)to_power b4
   iff
      ex b6 being Function-like quasi_total Relation of NAT,the carrier of b1 st
         b5 = b6 . b4 &
          b6 . 0 = b2 &
          (for b7 being Element of NAT
                st b7 < b4
             holds b6 . (b7 + 1) = (b6 . b7) \ b3);

:: BCIALG_2:th 1
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1 holds
(b2,b3)to_power 0 = b2;

:: BCIALG_2:th 2
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1 holds
(b2,b3)to_power 1 = b2 \ b3;

:: BCIALG_2:th 3
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1 holds
(b2,b3)to_power 2 = (b2 \ b3) \ b3;

:: BCIALG_2:th 4
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1
for b4 being Element of NAT holds
   (b2,b3)to_power (b4 + 1) = ((b2,b3)to_power b4) \ b3;

:: BCIALG_2:th 5
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
for b3 being Element of NAT holds
   (b2,0. b1)to_power (b3 + 1) = b2;

:: BCIALG_2:th 6
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of NAT holds
   (0. b1,0. b1)to_power b2 = 0. b1;

:: BCIALG_2:th 7
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3, b4 being Element of the carrier of b1
for b5 being Element of NAT holds
   ((b2,b3)to_power b5) \ b4 = (b2 \ b4,b3)to_power b5;

:: BCIALG_2:th 8
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1
for b4 being Element of NAT holds
   (b2,b2 \ (b2 \ b3))to_power b4 = (b2,b3)to_power b4;

:: BCIALG_2:th 9
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
for b3 being Element of NAT holds
   ((0. b1,b2)to_power b3) ` = (0. b1,b2 `)to_power b3;

:: BCIALG_2:th 10
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1
for b4, b5 being Element of NAT holds
((b2,b3)to_power b4,b3)to_power b5 = (b2,b3)to_power (b4 + b5);

:: BCIALG_2:th 11
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3, b4 being Element of the carrier of b1
for b5, b6 being Element of NAT holds
((b2,b3)to_power b5,b4)to_power b6 = ((b2,b4)to_power b6,b3)to_power b5;

:: BCIALG_2:th 12
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
for b3 being Element of NAT holds
   ((0. b1,b2)to_power b3) ` ` = (0. b1,b2)to_power b3;

:: BCIALG_2:th 13
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
for b3, b4 being Element of NAT holds
(0. b1,b2)to_power (b3 + b4) = ((0. b1,b2)to_power b3) \ (((0. b1,b2)to_power b4) `);

:: BCIALG_2:th 14
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
for b3, b4 being Element of NAT holds
((0. b1,b2)to_power (b3 + b4)) ` = ((0. b1,b2)to_power b3) ` \ ((0. b1,b2)to_power b4);

:: BCIALG_2:th 15
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
for b3, b4 being Element of NAT holds
((0. b1,(0. b1,b2)to_power b3)to_power b4) ` = (0. b1,b2)to_power (b3 * b4);

:: BCIALG_2:th 16
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
for b3, b4 being Element of NAT
      st (0. b1,b2)to_power b3 = 0. b1
   holds (0. b1,b2)to_power (b3 * b4) = 0. b1;

:: BCIALG_2:th 17
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1
for b4 being Element of NAT
      st b2 \ b3 = b2
   holds (b2,b3)to_power b4 = b2;

:: BCIALG_2:th 18
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1
for b4 being Element of NAT holds
   (0. b1,b2 \ b3)to_power b4 = ((0. b1,b2)to_power b4) \ ((0. b1,b3)to_power b4);

:: BCIALG_2:th 19
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3, b4 being Element of the carrier of b1
for b5 being Element of NAT
      st b2 <= b3
   holds (b2,b4)to_power b5 <= (b3,b4)to_power b5;

:: BCIALG_2:th 20
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3, b4 being Element of the carrier of b1
for b5 being Element of NAT
      st b2 <= b3
   holds (b4,b3)to_power b5 <= (b4,b2)to_power b5;

:: BCIALG_2:th 21
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3, b4 being Element of the carrier of b1
for b5 being Element of NAT holds
   ((b2,b3)to_power b5) \ ((b4,b3)to_power b5) <= b2 \ b4;

:: BCIALG_2:th 22
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1
for b4 being Element of NAT holds
   ((b2,b2 \ b3)to_power b4,b3 \ b2)to_power b4 <= b2;

:: BCIALG_2:attrnot 1 => BCIALG_1:attr 10
notation
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
  synonym minimal for atom;
end;

:: BCIALG_2:attrnot 2 => BCIALG_2:attr 1
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
  attr a2 is positive means
    0. a1 <= a2;
end;

:: BCIALG_2:dfs 2
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
To prove
     a2 is positive
it is sufficient to prove
  thus 0. a1 <= a2;

:: BCIALG_2:def 2
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is positive(b1)
   iff
      0. b1 <= b2;

:: BCIALG_2:attrnot 3 => BCIALG_2:attr 2
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
  attr a2 is least means
    for b1 being Element of the carrier of a1 holds
       a2 <= b1;
end;

:: BCIALG_2:dfs 3
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
To prove
     a2 is least
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       a2 <= b1;

:: BCIALG_2:def 3
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is least(b1)
   iff
      for b3 being Element of the carrier of b1 holds
         b2 <= b3;

:: BCIALG_2:attrnot 4 => BCIALG_2:attr 3
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
  attr a2 is maximal means
    for b1 being Element of the carrier of a1
          st a2 <= b1
       holds b1 = a2;
end;

:: BCIALG_2:dfs 4
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
To prove
     a2 is maximal
it is sufficient to prove
  thus for b1 being Element of the carrier of a1
          st a2 <= b1
       holds b1 = a2;

:: BCIALG_2:def 4
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is maximal(b1)
   iff
      for b3 being Element of the carrier of b1
            st b2 <= b3
         holds b3 = b2;

:: BCIALG_2:attrnot 5 => BCIALG_2:attr 4
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
  attr a2 is greatest means
    for b1 being Element of the carrier of a1 holds
       b1 <= a2;
end;

:: BCIALG_2:dfs 5
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
To prove
     a2 is greatest
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       b1 <= a2;

:: BCIALG_2:def 5
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is greatest(b1)
   iff
      for b3 being Element of the carrier of b1 holds
         b3 <= b2;

:: BCIALG_2:exreg 1
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  cluster positive Element of the carrier of a1;
end;

:: BCIALG_2:funcreg 1
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  cluster 0. a1 -> atom positive;
end;

:: BCIALG_2:th 23
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is atom(b1)
   iff
      for b3 being Element of the carrier of b1 holds
         b2 \ b3 = b3 ` \ (b2 `);

:: BCIALG_2:th 24
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 ` is atom(b1)
   iff
      for b3 being Element of the carrier of b1
            st b3 <= b2
         holds b2 ` = b3 `;

:: BCIALG_2:th 25
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 ` is atom(b1)
   iff
      for b3, b4 being Element of the carrier of b1 holds
      ((b2 \ b4) \ (b3 \ b4)) ` ` = b3 ` \ (b2 `);

:: BCIALG_2:th 26
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
   st 0. b1 is maximal(b1)
for b2 being Element of the carrier of b1 holds
   b2 is atom(b1);

:: BCIALG_2:th 27
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
   st ex b2 being Element of the carrier of b1 st
        b2 is greatest(b1)
for b2 being Element of the carrier of b1 holds
   b2 is positive(b1);

:: BCIALG_2:th 28
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
   b2 \ (b2 ` `) is positive Element of the carrier of b1;

:: BCIALG_2:th 29
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is atom(b1)
   iff
      b2 ` ` = b2;

:: BCIALG_2:th 30
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is atom(b1)
   iff
      ex b3 being Element of the carrier of b1 st
         b2 = b3 `;

:: BCIALG_2:attrnot 6 => BCIALG_2:attr 5
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
  attr a2 is nilpotent means
    ex b1 being non empty Element of NAT st
       (0. a1,a2)to_power b1 = 0. a1;
end;

:: BCIALG_2:dfs 6
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
To prove
     a2 is nilpotent
it is sufficient to prove
  thus ex b1 being non empty Element of NAT st
       (0. a1,a2)to_power b1 = 0. a1;

:: BCIALG_2:def 6
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is nilpotent(b1)
   iff
      ex b3 being non empty Element of NAT st
         (0. b1,b2)to_power b3 = 0. b1;

:: BCIALG_2:attrnot 7 => BCIALG_2:attr 6
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is nilpotent means
    for b1 being Element of the carrier of a1 holds
       b1 is nilpotent(a1);
end;

:: BCIALG_2:dfs 7
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is nilpotent
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       b1 is nilpotent(a1);

:: BCIALG_2:def 7
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is nilpotent
   iff
      for b2 being Element of the carrier of b1 holds
         b2 is nilpotent(b1);

:: BCIALG_2:funcnot 2 => BCIALG_2:func 2
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of the carrier of a1;
  assume a2 is nilpotent(a1);
  func ord A2 -> non empty Element of NAT means
    (0. a1,a2)to_power it = 0. a1 &
     (for b1 being Element of NAT
           st (0. a1,a2)to_power b1 = 0. a1 & b1 <> 0
        holds it <= b1);
end;

:: BCIALG_2:def 8
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
   st b2 is nilpotent(b1)
for b3 being non empty Element of NAT holds
      b3 = ord b2
   iff
      (0. b1,b2)to_power b3 = 0. b1 &
       (for b4 being Element of NAT
             st (0. b1,b2)to_power b4 = 0. b1 & b4 <> 0
          holds b3 <= b4);

:: BCIALG_2:funcreg 2
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  cluster 0. a1 -> nilpotent;
end;

:: BCIALG_2:th 31
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1 holds
      b2 is positive Element of the carrier of b1
   iff
      b2 is nilpotent(b1) & ord b2 = 1;

:: BCIALG_2:th 32
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0
   iff
      for b2 being Element of the carrier of b1 holds
         ord b2 = 1 & b2 is nilpotent(b1);

:: BCIALG_2:th 33
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
for b3 being Element of NAT holds
   (0. b1,b2 `)to_power b3 is atom(b1);

:: BCIALG_2:th 34
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of the carrier of b1
      st b2 is nilpotent(b1)
   holds ord b2 = ord (b2 `);

:: BCIALG_2:modenot 1 => BCIALG_2:mode 1
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  mode Congruence of A1 -> symmetric transitive total Relation of the carrier of a1,the carrier of a1 means
    for b1, b2, b3, b4 being Element of the carrier of a1
          st [b1,b2] in it & [b3,b4] in it
       holds [b1 \ b3,b2 \ b4] in it;
end;

:: BCIALG_2:dfs 9
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be symmetric transitive total Relation of the carrier of a1,the carrier of a1;
To prove
     a2 is Congruence of a1
it is sufficient to prove
  thus for b1, b2, b3, b4 being Element of the carrier of a1
          st [b1,b2] in a2 & [b3,b4] in a2
       holds [b1 \ b3,b2 \ b4] in a2;

:: BCIALG_2:def 9
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being symmetric transitive total Relation of the carrier of b1,the carrier of b1 holds
      b2 is Congruence of b1
   iff
      for b3, b4, b5, b6 being Element of the carrier of b1
            st [b3,b4] in b2 & [b5,b6] in b2
         holds [b3 \ b5,b4 \ b6] in b2;

:: BCIALG_2:modenot 2 => BCIALG_2:mode 2
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  mode L-congruence of A1 -> symmetric transitive total Relation of the carrier of a1,the carrier of a1 means
    for b1, b2 being Element of the carrier of a1
       st [b1,b2] in it
    for b3 being Element of the carrier of a1 holds
       [b3 \ b1,b3 \ b2] in it;
end;

:: BCIALG_2:dfs 10
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be symmetric transitive total Relation of the carrier of a1,the carrier of a1;
To prove
     a2 is L-congruence of a1
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1
       st [b1,b2] in a2
    for b3 being Element of the carrier of a1 holds
       [b3 \ b1,b3 \ b2] in a2;

:: BCIALG_2:def 10
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being symmetric transitive total Relation of the carrier of b1,the carrier of b1 holds
      b2 is L-congruence of b1
   iff
      for b3, b4 being Element of the carrier of b1
         st [b3,b4] in b2
      for b5 being Element of the carrier of b1 holds
         [b5 \ b3,b5 \ b4] in b2;

:: BCIALG_2:modenot 3 => BCIALG_2:mode 3
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  mode R-congruence of A1 -> symmetric transitive total Relation of the carrier of a1,the carrier of a1 means
    for b1, b2 being Element of the carrier of a1
       st [b1,b2] in it
    for b3 being Element of the carrier of a1 holds
       [b1 \ b3,b2 \ b3] in it;
end;

:: BCIALG_2:dfs 11
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be symmetric transitive total Relation of the carrier of a1,the carrier of a1;
To prove
     a2 is R-congruence of a1
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1
       st [b1,b2] in a2
    for b3 being Element of the carrier of a1 holds
       [b1 \ b3,b2 \ b3] in a2;

:: BCIALG_2:def 11
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being symmetric transitive total Relation of the carrier of b1,the carrier of b1 holds
      b2 is R-congruence of b1
   iff
      for b3, b4 being Element of the carrier of b1
         st [b3,b4] in b2
      for b5 being Element of the carrier of b1 holds
         [b3 \ b5,b4 \ b5] in b2;

:: BCIALG_2:modenot 4 => BCIALG_2:mode 4
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Ideal of a1;
  mode I-congruence of A1,A2 -> Relation of the carrier of a1,the carrier of a1 means
    for b1, b2 being Element of the carrier of a1 holds
       [b1,b2] in it
    iff
       b1 \ b2 in a2 & b2 \ b1 in a2;
end;

:: BCIALG_2:dfs 12
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Ideal of a1;
  let a3 be Relation of the carrier of a1,the carrier of a1;
To prove
     a3 is I-congruence of a1,a2
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1 holds
       [b1,b2] in a3
    iff
       b1 \ b2 in a2 & b2 \ b1 in a2;

:: BCIALG_2:def 12
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1
for b3 being Relation of the carrier of b1,the carrier of b1 holds
      b3 is I-congruence of b1,b2
   iff
      for b4, b5 being Element of the carrier of b1 holds
         [b4,b5] in b3
      iff
         b4 \ b5 in b2 & b5 \ b4 in b2;

:: BCIALG_2:condreg 1
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Ideal of a1;
  cluster -> symmetric transitive total (I-congruence of a1,a2);
end;

:: BCIALG_2:funcnot 3 => BCIALG_2:func 3
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  func IConSet A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Ideal of a1 st
             b1 is I-congruence of a1,b2;
end;

:: BCIALG_2:def 13
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being set holds
      b2 = IConSet b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            ex b4 being Ideal of b1 st
               b3 is I-congruence of b1,b4;

:: BCIALG_2:funcnot 4 => BCIALG_2:func 4
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  func ConSet A1 -> set equals
    {b1 where b1 is Congruence of a1: TRUE};
end;

:: BCIALG_2:def 14
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   ConSet b1 = {b2 where b2 is Congruence of b1: TRUE};

:: BCIALG_2:funcnot 5 => BCIALG_2:func 5
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  func LConSet A1 -> set equals
    {b1 where b1 is L-congruence of a1: TRUE};
end;

:: BCIALG_2:def 15
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   LConSet b1 = {b2 where b2 is L-congruence of b1: TRUE};

:: BCIALG_2:funcnot 6 => BCIALG_2:func 6
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  func RConSet A1 -> set equals
    {b1 where b1 is R-congruence of a1: TRUE};
end;

:: BCIALG_2:def 16
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   RConSet b1 = {b2 where b2 is R-congruence of b1: TRUE};

:: BCIALG_2:th 35
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Congruence of b1 holds
   Class(b2,0. b1) is closed Ideal of b1;

:: BCIALG_2:th 36
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being symmetric transitive total Relation of the carrier of b1,the carrier of b1 holds
      b2 is Congruence of b1
   iff
      b2 is R-congruence of b1 & b2 is L-congruence of b1;

:: BCIALG_2:th 37
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1
for b3 being I-congruence of b1,b2 holds
   b3 is Congruence of b1;

:: BCIALG_2:modenot 5 => BCIALG_2:mode 5
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Ideal of a1;
  redefine mode I-congruence of a1,a2 -> Congruence of a1;
end;

:: BCIALG_2:th 38
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1
for b3 being I-congruence of b1,b2 holds
   Class(b3,0. b1) c= b2;

:: BCIALG_2:th 39
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1
for b3 being I-congruence of b1,b2 holds
      b2 is closed(b1)
   iff
      b2 = Class(b3,0. b1);

:: BCIALG_2:th 40
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of the carrier of b1
for b4 being Congruence of b1
      st [b2,b3] in b4
   holds b2 \ b3 in Class(b4,0. b1) & b3 \ b2 in Class(b4,0. b1);

:: BCIALG_2:th 41
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Ideal of b1
for b4 being I-congruence of b1,b2
for b5 being I-congruence of b1,b3
      st Class(b4,0. b1) = Class(b5,0. b1)
   holds b4 = b5;

:: BCIALG_2:th 42
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3, b4 being Element of the carrier of b1
for b5 being Element of NAT
for b6 being Congruence of b1
      st [b2,b3] in b6 & b4 in Class(b6,0. b1)
   holds [b2,(b3,b4)to_power b5] in b6;

:: BCIALG_2:th 43
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
   st for b2 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
     for b3, b4 being Element of the carrier of b2 holds
     ex b5, b6, b7, b8 being Element of NAT st
        ((b3,b3 \ b4)to_power b5,b4 \ b3)to_power b6 = ((b4,b4 \ b3)to_power b7,b3 \ b4)to_power b8
for b2 being Congruence of b1
for b3 being Ideal of b1
      st b3 = Class(b2,0. b1)
   holds b2 is I-congruence of b1,b3;

:: BCIALG_2:th 44
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   IConSet b1 c= ConSet b1;

:: BCIALG_2:th 45
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   ConSet b1 c= LConSet b1;

:: BCIALG_2:th 46
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   ConSet b1 c= RConSet b1;

:: BCIALG_2:th 47
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   ConSet b1 = (LConSet b1) /\ RConSet b1;

:: BCIALG_2:th 48
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1
for b3 being I-congruence of b1,b2
for b4 being Congruence of b1
      st for b5 being L-congruence of b1 holds
           b5 is I-congruence of b1,b2
   holds b4 = b3;

:: BCIALG_2:th 49
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1
for b3 being I-congruence of b1,b2
for b4 being Congruence of b1
      st for b5 being R-congruence of b1 holds
           b5 is I-congruence of b1,b2
   holds b4 = b3;

:: BCIALG_2:th 50
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being L-congruence of b1 holds
   Class(b2,0. b1) is closed Ideal of b1;

:: BCIALG_2:funcreg 3
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Congruence of a1;
  cluster Class a2 -> non empty;
end;

:: BCIALG_2:funcnot 7 => BCIALG_2:func 7
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Congruence of a1;
  func EqClaOp A2 -> Function-like quasi_total Relation of [:Class a2,Class a2:],Class a2 means
    for b1, b2 being Element of Class a2
    for b3, b4 being Element of the carrier of a1
          st b1 = Class(a2,b3) & b2 = Class(a2,b4)
       holds it .(b1,b2) = Class(a2,b3 \ b4);
end;

:: BCIALG_2:def 17
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Congruence of b1
for b3 being Function-like quasi_total Relation of [:Class b2,Class b2:],Class b2 holds
      b3 = EqClaOp b2
   iff
      for b4, b5 being Element of Class b2
      for b6, b7 being Element of the carrier of b1
            st b4 = Class(b2,b6) & b5 = Class(b2,b7)
         holds b3 .(b4,b5) = Class(b2,b6 \ b7);

:: BCIALG_2:funcnot 8 => BCIALG_2:func 8
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Congruence of a1;
  func zeroEqC A2 -> Element of Class a2 equals
    Class(a2,0. a1);
end;

:: BCIALG_2:def 18
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Congruence of b1 holds
   zeroEqC b2 = Class(b2,0. b1);

:: BCIALG_2:funcnot 9 => BCIALG_2:func 9
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Congruence of a1;
  func A1 ./. A2 -> BCIStr_0 equals
    BCIStr_0(#Class a2,EqClaOp a2,zeroEqC a2#);
end;

:: BCIALG_2:def 19
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Congruence of b1 holds
   b1 ./. b2 = BCIStr_0(#Class b2,EqClaOp b2,zeroEqC b2#);

:: BCIALG_2:funcreg 4
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Congruence of a1;
  cluster a1 ./. a2 -> non empty;
end;

:: BCIALG_2:funcnot 10 => BCIALG_2:func 10
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Congruence of a1;
  let a3, a4 be Element of Class a2;
  func A3 \ A4 -> Element of Class a2 equals
    (EqClaOp a2) .(a3,a4);
end;

:: BCIALG_2:def 20
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Congruence of b1
for b3, b4 being Element of Class b2 holds
b3 \ b4 = (EqClaOp b2) .(b3,b4);

:: BCIALG_2:th 51
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1
for b3 being I-congruence of b1,b2 holds
   b1 ./. b3 is non empty being_B being_C being_I being_BCI-4 BCIStr_0;

:: BCIALG_2:funcreg 5
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Ideal of a1;
  let a3 be I-congruence of a1,a2;
  cluster a1 ./. a3 -> strict being_B being_C being_I being_BCI-4;
end;

:: BCIALG_2:th 52
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1
   st b2 = BCK-part b1
for b3 being I-congruence of b1,b2 holds
   b1 ./. b3 is non empty being_B being_C being_I being_BCI-4 p-Semisimple BCIStr_0;