Article BCIALG_1, MML version 4.99.1005

:: BCIALG_1:structnot 1 => BCIALG_1:struct 1
definition
  struct(1-sorted) BCIStr(#
    carrier -> set,
    InternalDiff -> Function-like quasi_total Relation of [:the carrier of it,the carrier of it:],the carrier of it
  #);
end;

:: BCIALG_1:attrnot 1 => BCIALG_1:attr 1
definition
  let a1 be BCIStr;
  attr a1 is strict;
end;

:: BCIALG_1:exreg 1
registration
  cluster strict BCIStr;
end;

:: BCIALG_1:aggrnot 1 => BCIALG_1:aggr 1
definition
  let a1 be set;
  let a2 be Function-like quasi_total Relation of [:a1,a1:],a1;
  aggr BCIStr(#a1,a2#) -> strict BCIStr;
end;

:: BCIALG_1:selnot 1 => BCIALG_1:sel 1
definition
  let a1 be BCIStr;
  sel the InternalDiff of a1 -> Function-like quasi_total Relation of [:the carrier of a1,the carrier of a1:],the carrier of a1;
end;

:: BCIALG_1:exreg 2
registration
  cluster non empty strict BCIStr;
end;

:: BCIALG_1:funcnot 1 => BCIALG_1:func 1
definition
  let a1 be BCIStr;
  let a2, a3 be Element of the carrier of a1;
  func A2 \ A3 -> Element of the carrier of a1 equals
    (the InternalDiff of a1) .(a2,a3);
end;

:: BCIALG_1:def 1
theorem
for b1 being BCIStr
for b2, b3 being Element of the carrier of b1 holds
b2 \ b3 = (the InternalDiff of b1) .(b2,b3);

:: BCIALG_1:structnot 2 => BCIALG_1:struct 2
definition
  struct(BCIStrZeroStr) BCIStr_0(#
    carrier -> set,
    InternalDiff -> Function-like quasi_total Relation of [:the carrier of it,the carrier of it:],the carrier of it,
    ZeroF -> Element of the carrier of it
  #);
end;

:: BCIALG_1:attrnot 2 => BCIALG_1:attr 2
definition
  let a1 be BCIStr_0;
  attr a1 is strict;
end;

:: BCIALG_1:exreg 3
registration
  cluster strict BCIStr_0;
end;

:: BCIALG_1:aggrnot 2 => BCIALG_1:aggr 2
definition
  let a1 be set;
  let a2 be Function-like quasi_total Relation of [:a1,a1:],a1;
  let a3 be Element of a1;
  aggr BCIStr_0(#a1,a2,a3#) -> strict BCIStr_0;
end;

:: BCIALG_1:exreg 4
registration
  cluster non empty strict BCIStr_0;
end;

:: BCIALG_1:funcnot 2 => BCIALG_1:func 2
definition
  let a1 be non empty BCIStr_0;
  let a2 be Element of the carrier of a1;
  func A2 ` -> Element of the carrier of a1 equals
    (0. a1) \ a2;
end;

:: BCIALG_1:def 2
theorem
for b1 being non empty BCIStr_0
for b2 being Element of the carrier of b1 holds
   b2 ` = (0. b1) \ b2;

:: BCIALG_1:attrnot 3 => BCIALG_1:attr 3
definition
  let a1 be non empty BCIStr_0;
  attr a1 is being_B means
    for b1, b2, b3 being Element of the carrier of a1 holds
    ((b1 \ b2) \ (b3 \ b2)) \ (b1 \ b3) = 0. a1;
end;

:: BCIALG_1:dfs 3
definiens
  let a1 be non empty BCIStr_0;
To prove
     a1 is being_B
it is sufficient to prove
  thus for b1, b2, b3 being Element of the carrier of a1 holds
    ((b1 \ b2) \ (b3 \ b2)) \ (b1 \ b3) = 0. a1;

:: BCIALG_1:def 3
theorem
for b1 being non empty BCIStr_0 holds
      b1 is being_B
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      ((b2 \ b3) \ (b4 \ b3)) \ (b2 \ b4) = 0. b1;

:: BCIALG_1:attrnot 4 => BCIALG_1:attr 4
definition
  let a1 be non empty BCIStr_0;
  attr a1 is being_C means
    for b1, b2, b3 being Element of the carrier of a1 holds
    ((b1 \ b2) \ b3) \ ((b1 \ b3) \ b2) = 0. a1;
end;

:: BCIALG_1:dfs 4
definiens
  let a1 be non empty BCIStr_0;
To prove
     a1 is being_C
it is sufficient to prove
  thus for b1, b2, b3 being Element of the carrier of a1 holds
    ((b1 \ b2) \ b3) \ ((b1 \ b3) \ b2) = 0. a1;

:: BCIALG_1:def 4
theorem
for b1 being non empty BCIStr_0 holds
      b1 is being_C
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      ((b2 \ b3) \ b4) \ ((b2 \ b4) \ b3) = 0. b1;

:: BCIALG_1:attrnot 5 => BCIALG_1:attr 5
definition
  let a1 be non empty BCIStr_0;
  attr a1 is being_I means
    for b1 being Element of the carrier of a1 holds
       b1 \ b1 = 0. a1;
end;

:: BCIALG_1:dfs 5
definiens
  let a1 be non empty BCIStr_0;
To prove
     a1 is being_I
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       b1 \ b1 = 0. a1;

:: BCIALG_1:def 5
theorem
for b1 being non empty BCIStr_0 holds
      b1 is being_I
   iff
      for b2 being Element of the carrier of b1 holds
         b2 \ b2 = 0. b1;

:: BCIALG_1:attrnot 6 => BCIALG_1:attr 6
definition
  let a1 be non empty BCIStr_0;
  attr a1 is being_K means
    for b1, b2 being Element of the carrier of a1 holds
    (b1 \ b2) \ b1 = 0. a1;
end;

:: BCIALG_1:dfs 6
definiens
  let a1 be non empty BCIStr_0;
To prove
     a1 is being_K
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1 holds
    (b1 \ b2) \ b1 = 0. a1;

:: BCIALG_1:def 6
theorem
for b1 being non empty BCIStr_0 holds
      b1 is being_K
   iff
      for b2, b3 being Element of the carrier of b1 holds
      (b2 \ b3) \ b2 = 0. b1;

:: BCIALG_1:attrnot 7 => BCIALG_1:attr 7
definition
  let a1 be non empty BCIStr_0;
  attr a1 is being_BCI-4 means
    for b1, b2 being Element of the carrier of a1
          st b1 \ b2 = 0. a1 & b2 \ b1 = 0. a1
       holds b1 = b2;
end;

:: BCIALG_1:dfs 7
definiens
  let a1 be non empty BCIStr_0;
To prove
     a1 is being_BCI-4
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1
          st b1 \ b2 = 0. a1 & b2 \ b1 = 0. a1
       holds b1 = b2;

:: BCIALG_1:def 7
theorem
for b1 being non empty BCIStr_0 holds
      b1 is being_BCI-4
   iff
      for b2, b3 being Element of the carrier of b1
            st b2 \ b3 = 0. b1 & b3 \ b2 = 0. b1
         holds b2 = b3;

:: BCIALG_1:attrnot 8 => BCIALG_1:attr 8
definition
  let a1 be non empty BCIStr_0;
  attr a1 is being_BCK-5 means
    for b1 being Element of the carrier of a1 holds
       b1 ` = 0. a1;
end;

:: BCIALG_1:dfs 8
definiens
  let a1 be non empty BCIStr_0;
To prove
     a1 is being_BCK-5
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       b1 ` = 0. a1;

:: BCIALG_1:def 8
theorem
for b1 being non empty BCIStr_0 holds
      b1 is being_BCK-5
   iff
      for b2 being Element of the carrier of b1 holds
         b2 ` = 0. b1;

:: BCIALG_1:prednot 1 => BCIALG_1:attr 3
notation
  let a1 be non empty BCIStr_0;
  synonym a1 is_B for being_B;
end;

:: BCIALG_1:prednot 2 => BCIALG_1:attr 4
notation
  let a1 be non empty BCIStr_0;
  synonym a1 is_C for being_C;
end;

:: BCIALG_1:prednot 3 => BCIALG_1:attr 5
notation
  let a1 be non empty BCIStr_0;
  synonym a1 is_I for being_I;
end;

:: BCIALG_1:prednot 4 => BCIALG_1:attr 6
notation
  let a1 be non empty BCIStr_0;
  synonym a1 is_K for being_K;
end;

:: BCIALG_1:prednot 5 => BCIALG_1:attr 7
notation
  let a1 be non empty BCIStr_0;
  synonym a1 is_BCI-4 for being_BCI-4;
end;

:: BCIALG_1:prednot 6 => BCIALG_1:attr 8
notation
  let a1 be non empty BCIStr_0;
  synonym a1 is_BCK-5 for being_BCK-5;
end;

:: BCIALG_1:funcnot 3 => BCIALG_1:func 3
definition
  func BCI-EXAMPLE -> BCIStr_0 equals
    BCIStr_0(#1,op2,op0#);
end;

:: BCIALG_1:def 9
theorem
BCI-EXAMPLE = BCIStr_0(#1,op2,op0#);

:: BCIALG_1:funcreg 1
registration
  cluster BCI-EXAMPLE -> non empty trivial strict;
end;

:: BCIALG_1:funcreg 2
registration
  cluster BCI-EXAMPLE -> being_B being_C being_I being_BCI-4 being_BCK-5;
end;

:: BCIALG_1:exreg 5
registration
  cluster non empty strict being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;
end;

:: BCIALG_1:modenot 1
definition
  mode BCI-algebra is non empty being_B being_C being_I being_BCI-4 BCIStr_0;
end;

:: BCIALG_1:modenot 2
definition
  mode BCK-algebra is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;
end;

:: BCIALG_1:modenot 3 => BCIALG_1:mode 1
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  mode SubAlgebra of A1 -> non empty being_B being_C being_I being_BCI-4 BCIStr_0 means
    0. it = 0. a1 &
     the carrier of it c= the carrier of a1 &
     the InternalDiff of it = (the InternalDiff of a1) || the carrier of it;
end;

:: BCIALG_1:dfs 10
definiens
  let a1, a2 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a2 is SubAlgebra of a1
it is sufficient to prove
  thus 0. a2 = 0. a1 &
     the carrier of a2 c= the carrier of a1 &
     the InternalDiff of a2 = (the InternalDiff of a1) || the carrier of a2;

:: BCIALG_1:def 10
theorem
for b1, b2 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   b2 is SubAlgebra of b1
iff
   0. b2 = 0. b1 &
    the carrier of b2 c= the carrier of b1 &
    the InternalDiff of b2 = (the InternalDiff of b1) || the carrier of b2;

:: BCIALG_1:th 1
theorem
for b1 being non empty BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 BCIStr_0
   iff
      b1 is being_I &
       b1 is being_BCI-4 &
       (for b2, b3, b4 being Element of the carrier of b1 holds
       ((b2 \ b3) \ (b2 \ b4)) \ (b4 \ b3) = 0. b1 &
        (b2 \ (b2 \ b3)) \ b3 = 0. b1);

:: BCIALG_1:prednot 7 => BCIALG_1:pred 1
definition
  let a1 be non empty BCIStr_0;
  let a2, a3 be Element of the carrier of a1;
  pred A2 <= A3 means
    a2 \ a3 = 0. a1;
end;

:: BCIALG_1:dfs 11
definiens
  let a1 be non empty BCIStr_0;
  let a2, a3 be Element of the carrier of a1;
To prove
     a2 <= a3
it is sufficient to prove
  thus a2 \ a3 = 0. a1;

:: BCIALG_1:def 11
theorem
for b1 being non empty BCIStr_0
for b2, b3 being Element of the carrier of b1 holds
   b2 <= b3
iff
   b2 \ b3 = 0. b1;

:: BCIALG_1:th 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 \ 0. b1 = b2;

:: BCIALG_1:th 3
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
      st b2 \ b3 = 0. b1 & b3 \ b4 = 0. b1
   holds b2 \ b4 = 0. b1;

:: BCIALG_1:th 4
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
      st b2 \ b3 = 0. b1
   holds (b2 \ b4) \ (b3 \ b4) = 0. b1 & (b4 \ b3) \ (b4 \ b2) = 0. b1;

:: BCIALG_1:th 5
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
      st b2 <= b3
   holds b2 \ b4 <= b3 \ b4 & b4 \ b3 <= b4 \ b2;

:: BCIALG_1:th 6
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
      st b2 \ b3 = 0. b1
   holds (b3 \ b2) ` = 0. b1;

:: BCIALG_1: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 holds
(b2 \ b3) \ b4 = (b2 \ b4) \ b3;

:: BCIALG_1: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 holds
b2 \ (b2 \ (b2 \ b3)) = b2 \ b3;

:: BCIALG_1:th 9
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) ` = b2 ` \ (b3 `);

:: BCIALG_1: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 holds
((b2 \ (b2 \ b3)) \ (b3 \ b2)) \ (b2 \ (b2 \ (b3 \ (b3 \ b2)))) = 0. b1;

:: BCIALG_1:th 11
theorem
for b1 being non empty BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 BCIStr_0
   iff
      b1 is being_BCI-4 &
       (for b2, b3, b4 being Element of the carrier of b1 holds
       ((b2 \ b3) \ (b2 \ b4)) \ (b4 \ b3) = 0. b1 &
        b2 \ 0. b1 = b2);

:: BCIALG_1:th 12
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
        b3 \ (b3 \ b4) = b4 \ (b4 \ b3)
   holds b1 is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;

:: BCIALG_1:th 13
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
        (b3 \ b4) \ b4 = b3 \ b4
   holds b1 is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;

:: BCIALG_1:th 14
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
        b3 \ (b4 \ b3) = b3
   holds b1 is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;

:: BCIALG_1:th 15
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, b5 being Element of the carrier of b2 holds
        (b3 \ b4) \ b4 = (b3 \ b5) \ (b4 \ b5)
   holds b1 is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;

:: BCIALG_1:th 16
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
        (b3 \ b4) \ (b4 \ b3) = b3 \ b4
   holds b1 is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;

:: BCIALG_1:th 17
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
        (b3 \ b4) \ ((b3 \ b4) \ (b4 \ b3)) = 0. b2
   holds b1 is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;

:: BCIALG_1:th 18
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is being_K
   iff
      b1 is non empty being_B being_C being_I being_BCI-4 being_BCK-5 BCIStr_0;

:: BCIALG_1:funcnot 4 => BCIALG_1:func 4
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  func BCK-part A1 -> non empty Element of bool the carrier of a1 equals
    {b1 where b1 is Element of the carrier of a1: 0. a1 <= b1};
end;

:: BCIALG_1:def 12
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   BCK-part b1 = {b2 where b2 is Element of the carrier of b1: 0. b1 <= b2};

:: BCIALG_1:th 19
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   0. b1 in BCK-part b1;

:: BCIALG_1:th 20
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of BCK-part b1 holds
b2 \ b3 in BCK-part b1;

:: BCIALG_1:th 21
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 BCK-part b1 holds
   b2 \ b3 <= b2;

:: BCIALG_1:th 22
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   b1 is SubAlgebra of b1;

:: BCIALG_1:attrnot 9 => BCIALG_1:attr 9
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be SubAlgebra of a1;
  attr a2 is proper means
    a2 <> a1;
end;

:: BCIALG_1:dfs 13
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be SubAlgebra of a1;
To prove
     a2 is proper
it is sufficient to prove
  thus a2 <> a1;

:: BCIALG_1:def 13
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being SubAlgebra of b1 holds
      b2 is proper(b1)
   iff
      b2 <> b1;

:: BCIALG_1:exreg 6
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  cluster non empty being_B being_C being_I being_BCI-4 non proper SubAlgebra of a1;
end;

:: BCIALG_1:attrnot 10 => BCIALG_1:attr 10
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 atom means
    for b1 being Element of the carrier of a1
          st b1 \ a2 = 0. a1
       holds b1 = a2;
end;

:: BCIALG_1:dfs 14
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 atom
it is sufficient to prove
  thus for b1 being Element of the carrier of a1
          st b1 \ a2 = 0. a1
       holds b1 = a2;

:: BCIALG_1:def 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 holds
      b2 is atom(b1)
   iff
      for b3 being Element of the carrier of b1
            st b3 \ b2 = 0. b1
         holds b3 = b2;

:: BCIALG_1:funcnot 5 => BCIALG_1:func 5
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  func AtomSet A1 -> non empty Element of bool the carrier of a1 equals
    {b1 where b1 is Element of the carrier of a1: b1 is atom(a1)};
end;

:: BCIALG_1:def 15
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   AtomSet b1 = {b2 where b2 is Element of the carrier of b1: b2 is atom(b1)};

:: BCIALG_1:th 23
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   0. b1 in AtomSet b1;

:: BCIALG_1: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 in AtomSet b1
   iff
      for b3 being Element of the carrier of b1 holds
         b3 \ (b3 \ b2) = b2;

:: BCIALG_1: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 in AtomSet b1
   iff
      for b3, b4 being Element of the carrier of b1 holds
      (b4 \ b3) \ (b4 \ b2) = b2 \ b3;

:: BCIALG_1:th 26
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 in AtomSet b1
   iff
      for b3, b4 being Element of the carrier of b1 holds
      b2 \ (b4 \ b3) <= b3 \ (b4 \ b2);

:: BCIALG_1:th 27
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 in AtomSet b1
   iff
      for b3, b4, b5 being Element of the carrier of b1 holds
      (b2 \ b5) \ (b4 \ b3) <= (b3 \ b5) \ (b4 \ b2);

:: BCIALG_1: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 in AtomSet b1
   iff
      for b3 being Element of the carrier of b1 holds
         b3 ` \ (b2 `) = b2 \ b3;

:: BCIALG_1: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 in AtomSet b1
   iff
      b2 ` ` = b2;

:: BCIALG_1: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 in AtomSet b1
   iff
      for b3 being Element of the carrier of b1 holds
         (b3 \ b2) ` = b2 \ b3;

:: BCIALG_1: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 in AtomSet b1
   iff
      for b3 being Element of the carrier of b1 holds
         (b2 \ b3) ` ` = b2 \ b3;

:: BCIALG_1:th 32
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 in AtomSet b1
   iff
      for b3, b4 being Element of the carrier of b1 holds
      b3 \ (b3 \ (b2 \ b4)) = b2 \ b4;

:: BCIALG_1:th 33
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of AtomSet b1
for b3 being Element of the carrier of b1 holds
   b2 \ b3 in AtomSet b1;

:: BCIALG_1:funcnot 6 => BCIALG_1:func 6
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2, a3 be Element of AtomSet a1;
  redefine func a2 \ a3 -> Element of AtomSet a1;
end;

:: BCIALG_1: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 holds
   b2 ` in AtomSet b1;

:: BCIALG_1:th 35
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
   ex b3 being Element of AtomSet b1 st
      b3 <= b2;

:: BCIALG_1:attrnot 11 => BCIALG_1:attr 11
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is generated_by_atom means
    for b1 being Element of the carrier of a1 holds
       ex b2 being Element of AtomSet a1 st
          b2 <= b1;
end;

:: BCIALG_1:dfs 16
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is generated_by_atom
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       ex b2 being Element of AtomSet a1 st
          b2 <= b1;

:: BCIALG_1:def 16
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is generated_by_atom
   iff
      for b2 being Element of the carrier of b1 holds
         ex b3 being Element of AtomSet b1 st
            b3 <= b2;

:: BCIALG_1:funcnot 7 => BCIALG_1:func 7
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Element of AtomSet a1;
  func BranchV A2 -> non empty Element of bool the carrier of a1 equals
    {b1 where b1 is Element of the carrier of a1: a2 <= b1};
end;

:: BCIALG_1:def 17
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of AtomSet b1 holds
   BranchV b2 = {b3 where b3 is Element of the carrier of b1: b2 <= b3};

:: BCIALG_1:th 36
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   b1 is generated_by_atom;

:: BCIALG_1:th 37
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of AtomSet b1
for b4 being Element of BranchV b3 holds
   b2 \ b4 = b2 \ b3;

:: BCIALG_1:th 38
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of AtomSet b1
for b3 being Element of BCK-part b1 holds
   b2 \ b3 = b2;

:: BCIALG_1:th 39
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of AtomSet b1
for b4 being Element of BranchV b2
for b5 being Element of BranchV b3 holds
   b4 \ b5 in BranchV (b2 \ b3);

:: BCIALG_1:th 40
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Element of AtomSet b1
for b3, b4 being Element of BranchV b2 holds
b3 \ b4 in BCK-part b1;

:: BCIALG_1:th 41
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of AtomSet b1
for b4 being Element of BranchV b2
for b5 being Element of BranchV b3
      st b2 <> b3
   holds not b4 \ b5 in BCK-part b1;

:: BCIALG_1:th 42
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2, b3 being Element of AtomSet b1
      st b2 <> b3
   holds (BranchV b2) /\ BranchV b3 = {};

:: BCIALG_1:modenot 4 => BCIALG_1:mode 2
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  mode Ideal of A1 -> non empty Element of bool the carrier of a1 means
    0. a1 in it &
     (for b1, b2 being Element of the carrier of a1
           st b1 \ b2 in it & b2 in it
        holds b1 in it);
end;

:: BCIALG_1:dfs 18
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be non empty Element of bool the carrier of a1;
To prove
     a2 is Ideal of a1
it is sufficient to prove
  thus 0. a1 in a2 &
     (for b1, b2 being Element of the carrier of a1
           st b1 \ b2 in a2 & b2 in a2
        holds b1 in a2);

:: BCIALG_1:def 18
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being non empty Element of bool the carrier of b1 holds
      b2 is Ideal of b1
   iff
      0. b1 in b2 &
       (for b3, b4 being Element of the carrier of b1
             st b3 \ b4 in b2 & b4 in b2
          holds b3 in b2);

:: BCIALG_1:attrnot 12 => BCIALG_1:attr 12
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Ideal of a1;
  attr a2 is closed means
    for b1 being Element of a2 holds
       b1 ` in a2;
end;

:: BCIALG_1:dfs 19
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  let a2 be Ideal of a1;
To prove
     a2 is closed
it is sufficient to prove
  thus for b1 being Element of a2 holds
       b1 ` in a2;

:: BCIALG_1:def 19
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being Ideal of b1 holds
      b2 is closed(b1)
   iff
      for b3 being Element of b2 holds
         b3 ` in b2;

:: BCIALG_1:exreg 7
registration
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  cluster non empty closed Ideal of a1;
end;

:: BCIALG_1:th 43
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   {0. b1} is closed Ideal of b1;

:: BCIALG_1:th 44
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   the carrier of b1 is closed Ideal of b1;

:: BCIALG_1:th 45
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
   BCK-part b1 is closed Ideal of b1;

:: BCIALG_1:th 46
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
for b2 being non empty Element of bool the carrier of b1
   st b2 is Ideal of b1
for b3, b4 being Element of the carrier of b1
      st b3 in b2 & b4 <= b3
   holds b4 in b2;

:: BCIALG_1:attrnot 13 => BCIALG_1:attr 13
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is associative means
    for b1, b2, b3 being Element of the carrier of a1 holds
    (b1 \ b2) \ b3 = b1 \ (b2 \ b3);
end;

:: BCIALG_1:dfs 20
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is associative
it is sufficient to prove
  thus for b1, b2, b3 being Element of the carrier of a1 holds
    (b1 \ b2) \ b3 = b1 \ (b2 \ b3);

:: BCIALG_1:def 20
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is associative
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b2 \ b3) \ b4 = b2 \ (b3 \ b4);

:: BCIALG_1:attrnot 14 => BCIALG_1:attr 14
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is quasi-associative means
    for b1 being Element of the carrier of a1 holds
       b1 ` ` = b1 `;
end;

:: BCIALG_1:dfs 21
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is quasi-associative
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       b1 ` ` = b1 `;

:: BCIALG_1:def 21
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is quasi-associative
   iff
      for b2 being Element of the carrier of b1 holds
         b2 ` ` = b2 `;

:: BCIALG_1:attrnot 15 => BCIALG_1:attr 15
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is positive-implicative means
    for b1, b2 being Element of the carrier of a1 holds
    (b1 \ (b1 \ b2)) \ (b2 \ b1) = b1 \ (b1 \ (b2 \ (b2 \ b1)));
end;

:: BCIALG_1:dfs 22
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is positive-implicative
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1 holds
    (b1 \ (b1 \ b2)) \ (b2 \ b1) = b1 \ (b1 \ (b2 \ (b2 \ b1)));

:: BCIALG_1:def 22
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is positive-implicative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      (b2 \ (b2 \ b3)) \ (b3 \ b2) = b2 \ (b2 \ (b3 \ (b3 \ b2)));

:: BCIALG_1:attrnot 16 => BCIALG_1:attr 16
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is weakly-positive-implicative means
    for b1, b2, b3 being Element of the carrier of a1 holds
    (b1 \ b2) \ b3 = ((b1 \ b3) \ b3) \ (b2 \ b3);
end;

:: BCIALG_1:dfs 23
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is weakly-positive-implicative
it is sufficient to prove
  thus for b1, b2, b3 being Element of the carrier of a1 holds
    (b1 \ b2) \ b3 = ((b1 \ b3) \ b3) \ (b2 \ b3);

:: BCIALG_1:def 23
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is weakly-positive-implicative
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b2 \ b3) \ b4 = ((b2 \ b4) \ b4) \ (b3 \ b4);

:: BCIALG_1:attrnot 17 => BCIALG_1:attr 17
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is implicative means
    for b1, b2 being Element of the carrier of a1 holds
    (b1 \ (b1 \ b2)) \ (b2 \ b1) = b2 \ (b2 \ b1);
end;

:: BCIALG_1:dfs 24
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is implicative
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1 holds
    (b1 \ (b1 \ b2)) \ (b2 \ b1) = b2 \ (b2 \ b1);

:: BCIALG_1:def 24
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is implicative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      (b2 \ (b2 \ b3)) \ (b3 \ b2) = b3 \ (b3 \ b2);

:: BCIALG_1:attrnot 18 => BCIALG_1:attr 18
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is weakly-implicative means
    for b1, b2 being Element of the carrier of a1 holds
    (b1 \ (b2 \ b1)) \ ((b2 \ b1) `) = b1;
end;

:: BCIALG_1:dfs 25
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is weakly-implicative
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1 holds
    (b1 \ (b2 \ b1)) \ ((b2 \ b1) `) = b1;

:: BCIALG_1:def 25
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is weakly-implicative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      (b2 \ (b3 \ b2)) \ ((b3 \ b2) `) = b2;

:: BCIALG_1:attrnot 19 => BCIALG_1:attr 19
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is p-Semisimple means
    for b1, b2 being Element of the carrier of a1 holds
    b1 \ (b1 \ b2) = b2;
end;

:: BCIALG_1:dfs 26
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is p-Semisimple
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1 holds
    b1 \ (b1 \ b2) = b2;

:: BCIALG_1:def 26
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3 being Element of the carrier of b1 holds
      b2 \ (b2 \ b3) = b3;

:: BCIALG_1:attrnot 20 => BCIALG_1:attr 20
definition
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
  attr a1 is alternative means
    for b1, b2 being Element of the carrier of a1 holds
    b1 \ (b1 \ b2) = (b1 \ b1) \ b2 &
     (b1 \ b2) \ b2 = b1 \ (b2 \ b2);
end;

:: BCIALG_1:dfs 27
definiens
  let a1 be non empty being_B being_C being_I being_BCI-4 BCIStr_0;
To prove
     a1 is alternative
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1 holds
    b1 \ (b1 \ b2) = (b1 \ b1) \ b2 &
     (b1 \ b2) \ b2 = b1 \ (b2 \ b2);

:: BCIALG_1:def 27
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is alternative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      b2 \ (b2 \ b3) = (b2 \ b2) \ b3 &
       (b2 \ b3) \ b3 = b2 \ (b3 \ b3);

:: BCIALG_1:funcreg 3
registration
  cluster BCI-EXAMPLE -> associative positive-implicative weakly-positive-implicative implicative weakly-implicative p-Semisimple;
end;

:: BCIALG_1:exreg 8
registration
  cluster non empty being_B being_C being_I being_BCI-4 associative positive-implicative weakly-positive-implicative implicative weakly-implicative p-Semisimple BCIStr_0;
end;

:: BCIALG_1:th 47
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is associative
   iff
      for b2 being Element of the carrier of b1 holds
         b2 ` = b2;

:: BCIALG_1:th 48
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      for b2, b3 being Element of the carrier of b1 holds
      b3 \ b2 = b2 \ b3
   iff
      b1 is associative;

:: BCIALG_1:th 49
theorem
for b1 being non empty BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 associative BCIStr_0
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b3 \ b2) \ (b4 \ b2) = b4 \ b3 &
       b2 \ 0. b1 = b2;

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

:: BCIALG_1:th 51
theorem
for b1 being non empty BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 associative BCIStr_0
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b2 \ b3) \ (b2 \ b4) = b3 \ b4 &
       b2 \ 0. b1 = b2;

:: BCIALG_1:th 52
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2 being Element of the carrier of b1 holds
         b2 is atom(b1);

:: BCIALG_1:th 53
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
      st b1 is p-Semisimple
   holds BCK-part b1 = {0. b1};

:: BCIALG_1:th 54
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2 being Element of the carrier of b1 holds
         b2 ` ` = b2;

:: BCIALG_1:th 55
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3 being Element of the carrier of b1 holds
      b3 \ (b3 \ b2) = b2;

:: BCIALG_1:th 56
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b4 \ b3) \ (b4 \ b2) = b2 \ b3;

:: BCIALG_1:th 57
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      b2 \ (b4 \ b3) = b3 \ (b4 \ b2);

:: BCIALG_1:th 58
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3, b4, b5 being Element of the carrier of b1 holds
      (b2 \ b5) \ (b4 \ b3) = (b3 \ b5) \ (b4 \ b2);

:: BCIALG_1:th 59
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3 being Element of the carrier of b1 holds
      b3 ` \ (b2 `) = b2 \ b3;

:: BCIALG_1:th 60
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3 being Element of the carrier of b1 holds
      (b2 \ b3) ` ` = b2 \ b3;

:: BCIALG_1:th 61
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      b4 \ (b4 \ (b2 \ b3)) = b2 \ b3;

:: BCIALG_1:th 62
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2 being Element of the carrier of b1
            st b2 ` = 0. b1
         holds b2 = 0. b1;

:: BCIALG_1:th 63
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3 being Element of the carrier of b1 holds
      b2 \ (b3 `) = b3 \ (b2 `);

:: BCIALG_1:th 64
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3, b4, b5 being Element of the carrier of b1 holds
      (b2 \ b3) \ (b4 \ b5) = (b2 \ b4) \ (b3 \ b5);

:: BCIALG_1:th 65
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b2 \ b3) \ (b4 \ b3) = b2 \ b4;

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

:: BCIALG_1:th 67
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3, b4 being Element of the carrier of b1
            st b3 \ b2 = b4 \ b2
         holds b3 = b4;

:: BCIALG_1:th 68
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is p-Semisimple
   iff
      for b2, b3, b4 being Element of the carrier of b1
            st b2 \ b3 = b2 \ b4
         holds b3 = b4;

:: BCIALG_1:th 69
theorem
for b1 being non empty BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 p-Semisimple BCIStr_0
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b2 \ b3) \ (b2 \ b4) = b4 \ b3 &
       b2 \ 0. b1 = b2;

:: BCIALG_1:th 70
theorem
for b1 being non empty BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 p-Semisimple BCIStr_0
   iff
      b1 is being_I &
       (for b2, b3, b4 being Element of the carrier of b1 holds
       b2 \ (b3 \ b4) = b4 \ (b3 \ b2) &
        b2 \ 0. b1 = b2);

:: BCIALG_1:th 71
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is quasi-associative
   iff
      for b2 being Element of the carrier of b1 holds
         b2 ` <= b2;

:: BCIALG_1:th 72
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is quasi-associative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      (b2 \ b3) ` = (b3 \ b2) `;

:: BCIALG_1:th 73
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is quasi-associative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      b2 ` \ b3 = (b2 \ b3) `;

:: BCIALG_1:th 74
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is quasi-associative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      (b2 \ b3) \ (b3 \ b2) in BCK-part b1;

:: BCIALG_1:th 75
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is quasi-associative
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b2 \ b3) \ b4 <= b2 \ (b3 \ b4);

:: BCIALG_1:th 76
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
      st b1 is alternative
   holds b2 ` = b2 & b2 \ (b2 \ b3) = b3 & (b2 \ b3) \ b3 = b2;

:: BCIALG_1:th 77
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
      st b1 is alternative & b2 \ b3 = b2 \ b4
   holds b3 = b4;

:: BCIALG_1:th 78
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
      st b1 is alternative & b2 \ b3 = b4 \ b3
   holds b2 = b4;

:: BCIALG_1:th 79
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
      st b1 is alternative & b2 \ b3 = 0. b1
   holds b2 = b3;

:: BCIALG_1:th 80
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
      st b1 is alternative & (b2 \ b3) \ b4 = 0. b1
   holds b3 = b2 \ b4 & b4 = b2 \ b3;

:: BCIALG_1:condreg 1
registration
  cluster non empty being_B being_C being_I being_BCI-4 alternative -> associative (BCIStr_0);
end;

:: BCIALG_1:condreg 2
registration
  cluster non empty being_B being_C being_I being_BCI-4 associative -> alternative (BCIStr_0);
end;

:: BCIALG_1:condreg 3
registration
  cluster non empty being_B being_C being_I being_BCI-4 alternative -> implicative (BCIStr_0);
end;

:: BCIALG_1:th 81
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
      st b1 is alternative
   holds (b2 \ (b2 \ b3)) \ (b3 \ b2) = b2;

:: BCIALG_1:th 82
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
      st b1 is alternative
   holds b2 \ (b2 \ (b3 \ (b3 \ b2))) = b2;

:: BCIALG_1:condreg 4
registration
  cluster non empty being_B being_C being_I being_BCI-4 associative -> weakly-positive-implicative (BCIStr_0);
end;

:: BCIALG_1:condreg 5
registration
  cluster non empty being_B being_C being_I being_BCI-4 p-Semisimple -> weakly-positive-implicative (BCIStr_0);
end;

:: BCIALG_1:th 83
theorem
for b1 being non empty BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 implicative BCIStr_0
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      ((b2 \ b3) \ (b2 \ b4)) \ (b4 \ b3) = 0. b1 &
       b2 \ 0. b1 = b2 &
       (b2 \ (b2 \ b3)) \ (b3 \ b2) = b3 \ (b3 \ b2);

:: BCIALG_1:th 84
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0 holds
      b1 is weakly-positive-implicative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      b2 \ b3 = ((b2 \ b3) \ b3) \ (b3 `);

:: BCIALG_1:condreg 6
registration
  cluster non empty being_B being_C being_I being_BCI-4 positive-implicative -> weakly-positive-implicative (BCIStr_0);
end;

:: BCIALG_1:condreg 7
registration
  cluster non empty being_B being_C being_I being_BCI-4 alternative -> weakly-positive-implicative (BCIStr_0);
end;

:: BCIALG_1:th 85
theorem
for b1 being non empty being_B being_C being_I being_BCI-4 BCIStr_0
   st b1 is non empty being_B being_C being_I being_BCI-4 weakly-positive-implicative BCIStr_0
for b2, b3 being Element of the carrier of b1 holds
(b2 \ (b2 \ b3)) \ (b3 \ b2) = ((b3 \ (b3 \ b2)) \ (b3 \ b2)) \ (b2 \ b3);

:: BCIALG_1:th 86
theorem
for b1 being non empty BCIStr_0 holds
      b1 is non empty being_B being_C being_I being_BCI-4 positive-implicative BCIStr_0
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      ((b2 \ b3) \ (b2 \ b4)) \ (b4 \ b3) = 0. b1 &
       b2 \ 0. b1 = b2 &
       b2 \ b3 = ((b2 \ b3) \ b3) \ (b3 `) &
       (b2 \ (b2 \ b3)) \ (b3 \ b2) = ((b3 \ (b3 \ b2)) \ (b3 \ b2)) \ (b2 \ b3);