Article UNIALG_3, MML version 4.99.1005

:: UNIALG_3:modenot 1 => UNIALG_3:mode 1
definition
  let a1 be non empty partial quasi_total non-empty UAStr;
  mode SubAlgebra-Family of A1 means
    for b1 being set
          st b1 in it
       holds b1 is SubAlgebra of a1;
end;

:: UNIALG_3:dfs 1
definiens
  let a1 be non empty partial quasi_total non-empty UAStr;
  let a2 be set;
To prove
     a2 is SubAlgebra-Family of a1
it is sufficient to prove
  thus for b1 being set
          st b1 in a2
       holds b1 is SubAlgebra of a1;

:: UNIALG_3:def 1
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being set holds
      b2 is SubAlgebra-Family of b1
   iff
      for b3 being set
            st b3 in b2
         holds b3 is SubAlgebra of b1;

:: UNIALG_3:exreg 1
registration
  let a1 be non empty partial quasi_total non-empty UAStr;
  cluster non empty SubAlgebra-Family of a1;
end;

:: UNIALG_3:funcnot 1 => UNIALG_3:func 1
definition
  let a1 be non empty partial quasi_total non-empty UAStr;
  redefine func Sub a1 -> non empty SubAlgebra-Family of a1;
end;

:: UNIALG_3:modenot 2 => UNIALG_3:mode 2
definition
  let a1 be non empty partial quasi_total non-empty UAStr;
  let a2 be non empty SubAlgebra-Family of a1;
  redefine mode Element of a2 -> SubAlgebra of a1;
end;

:: UNIALG_3:funcnot 2 => UNIALG_3:func 2
definition
  let a1 be non empty partial quasi_total non-empty UAStr;
  redefine func UniAlg_join a1 -> Function-like quasi_total Relation of [:Sub a1,Sub a1:],Sub a1;
end;

:: UNIALG_3:funcnot 3 => UNIALG_3:func 3
definition
  let a1 be non empty partial quasi_total non-empty UAStr;
  redefine func UniAlg_meet a1 -> Function-like quasi_total Relation of [:Sub a1,Sub a1:],Sub a1;
end;

:: UNIALG_3:funcnot 4 => UNIALG_3:func 4
definition
  let a1 be non empty partial quasi_total non-empty UAStr;
  let a2 be Element of Sub a1;
  func carr A2 -> Element of bool the carrier of a1 means
    ex b1 being SubAlgebra of a1 st
       a2 = b1 & it = the carrier of b1;
end;

:: UNIALG_3:def 2
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Element of Sub b1
for b3 being Element of bool the carrier of b1 holds
      b3 = carr b2
   iff
      ex b4 being SubAlgebra of b1 st
         b2 = b4 & b3 = the carrier of b4;

:: UNIALG_3:funcnot 5 => UNIALG_3:func 5
definition
  let a1 be non empty partial quasi_total non-empty UAStr;
  func Carr A1 -> Function-like quasi_total Relation of Sub a1,bool the carrier of a1 means
    for b1 being Element of Sub a1 holds
       it . b1 = carr b1;
end;

:: UNIALG_3:def 3
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Function-like quasi_total Relation of Sub b1,bool the carrier of b1 holds
      b2 = Carr b1
   iff
      for b3 being Element of Sub b1 holds
         b2 . b3 = carr b3;

:: UNIALG_3:th 1
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being set holds
      b2 in Sub b1
   iff
      ex b3 being strict SubAlgebra of b1 st
         b2 = b3;

:: UNIALG_3:th 2
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being non empty Element of bool the carrier of b1
for b3 being Element of Operations b1
      st arity b3 = 0
   holds    b2 is_closed_on b3
   iff
      b3 . {} in b2;

:: UNIALG_3:th 3
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being SubAlgebra of b1 holds
   the carrier of b2 c= the carrier of b1;

:: UNIALG_3:th 4
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being non empty Element of bool the carrier of b1
for b3 being Element of Operations b1
      st b2 is_closed_on b3 & arity b3 = 0
   holds b3 /. b2 = b3;

:: UNIALG_3:th 5
theorem
for b1 being non empty partial quasi_total non-empty UAStr holds
   Constants b1 = {b2 . {} where b2 is Element of Operations b1: arity b2 = 0};

:: UNIALG_3:th 6
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr
for b2 being SubAlgebra of b1 holds
   Constants b1 = Constants b2;

:: UNIALG_3:condreg 1
registration
  let a1 be non empty partial quasi_total non-empty with_const_op UAStr;
  cluster -> with_const_op (SubAlgebra of a1);
end;

:: UNIALG_3:th 7
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr
for b2, b3 being SubAlgebra of b1 holds
Constants b2 = Constants b3;

:: UNIALG_3:funcnot 6 => UNIALG_3:func 6
definition
  let a1 be non empty partial quasi_total non-empty UAStr;
  redefine func Carr A1 -> Function-like quasi_total Relation of Sub a1,bool the carrier of a1 means
    for b1 being Element of Sub a1
    for b2 being SubAlgebra of a1
          st b1 = b2
       holds it . b1 = the carrier of b2;
end;

:: UNIALG_3:def 4
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Function-like quasi_total Relation of Sub b1,bool the carrier of b1 holds
      b2 = Carr b1
   iff
      for b3 being Element of Sub b1
      for b4 being SubAlgebra of b1
            st b3 = b4
         holds b2 . b3 = the carrier of b4;

:: UNIALG_3:th 8
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being strict SubAlgebra of b1
for b3 being Element of the carrier of b1 holds
      b3 in (Carr b1) . b2
   iff
      b3 in b2;

:: UNIALG_3:th 9
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being non empty Element of bool Sub b1 holds
   (Carr b1) .: b2 is not empty;

:: UNIALG_3:th 10
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr
for b2 being strict SubAlgebra of b1 holds
   Constants b1 c= (Carr b1) . b2;

:: UNIALG_3:th 11
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr
for b2 being SubAlgebra of b1
for b3 being set
      st b3 is Element of Constants b1
   holds b3 in the carrier of b2;

:: UNIALG_3:th 12
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr
for b2 being non empty Element of bool Sub b1 holds
   meet ((Carr b1) .: b2) is non empty Element of bool the carrier of b1;

:: UNIALG_3:th 13
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr holds
   the carrier of UnSubAlLattice b1 = Sub b1;

:: UNIALG_3:th 14
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr
for b2 being non empty Element of bool Sub b1
for b3 being non empty Element of bool the carrier of b1
      st b3 = meet ((Carr b1) .: b2)
   holds b3 is opers_closed(b1);

:: UNIALG_3:funcnot 7 => UNIALG_3:func 7
definition
  let a1 be non empty strict partial quasi_total non-empty with_const_op UAStr;
  let a2 be non empty Element of bool Sub a1;
  func meet A2 -> strict SubAlgebra of a1 means
    the carrier of it = meet ((Carr a1) .: a2);
end;

:: UNIALG_3:def 5
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr
for b2 being non empty Element of bool Sub b1
for b3 being strict SubAlgebra of b1 holds
      b3 = meet b2
   iff
      the carrier of b3 = meet ((Carr b1) .: b2);

:: UNIALG_3:th 17
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr
for b2, b3 being Element of the carrier of UnSubAlLattice b1
for b4, b5 being strict SubAlgebra of b1
      st b2 = b4 & b3 = b5
   holds    b2 [= b3
   iff
      the carrier of b4 c= the carrier of b5;

:: UNIALG_3:th 18
theorem
for b1 being non empty partial quasi_total non-empty with_const_op UAStr
for b2, b3 being Element of the carrier of UnSubAlLattice b1
for b4, b5 being strict SubAlgebra of b1
      st b2 = b4 & b3 = b5
   holds    b2 [= b3
   iff
      b4 is SubAlgebra of b5;

:: UNIALG_3:th 19
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr holds
   UnSubAlLattice b1 is bounded;

:: UNIALG_3:funcreg 1
registration
  let a1 be non empty strict partial quasi_total non-empty with_const_op UAStr;
  cluster UnSubAlLattice a1 -> non empty strict Lattice-like bounded;
end;

:: UNIALG_3:th 20
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr
for b2 being strict SubAlgebra of b1 holds
   (GenUnivAlg Constants b1) /\ b2 = GenUnivAlg Constants b1;

:: UNIALG_3:th 21
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr holds
   Bottom UnSubAlLattice b1 = GenUnivAlg Constants b1;

:: UNIALG_3:th 22
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr
for b2 being SubAlgebra of b1
for b3 being Element of bool the carrier of b1
      st b3 = the carrier of b1
   holds (GenUnivAlg b3) "\/" b2 = GenUnivAlg b3;

:: UNIALG_3:th 23
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr
for b2 being Element of bool the carrier of b1
      st b2 = the carrier of b1
   holds Top UnSubAlLattice b1 = GenUnivAlg b2;

:: UNIALG_3:th 24
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr holds
   Top UnSubAlLattice b1 = b1;

:: UNIALG_3:th 25
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr holds
   UnSubAlLattice b1 is complete;

:: UNIALG_3:funcnot 8 => UNIALG_3:func 8
definition
  let a1, a2 be non empty partial quasi_total non-empty with_const_op UAStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  func FuncLatt A3 -> Function-like quasi_total Relation of the carrier of UnSubAlLattice a1,the carrier of UnSubAlLattice a2 means
    for b1 being strict SubAlgebra of a1
    for b2 being Element of bool the carrier of a2
          st b2 = a3 .: the carrier of b1
       holds it . b1 = GenUnivAlg b2;
end;

:: UNIALG_3:def 6
theorem
for b1, b2 being non empty partial quasi_total non-empty with_const_op UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of UnSubAlLattice b1,the carrier of UnSubAlLattice b2 holds
      b4 = FuncLatt b3
   iff
      for b5 being strict SubAlgebra of b1
      for b6 being Element of bool the carrier of b2
            st b6 = b3 .: the carrier of b5
         holds b4 . b5 = GenUnivAlg b6;

:: UNIALG_3:th 26
theorem
for b1 being non empty strict partial quasi_total non-empty with_const_op UAStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 = id the carrier of b1
   holds FuncLatt b2 = id the carrier of UnSubAlLattice b1;