Article LATTICE6, MML version 4.99.1005

:: LATTICE6:exreg 1
registration
  cluster non empty finite join-commutative join-associative meet-commutative meet-associative meet-absorbing join-absorbing Lattice-like LattStr;
end;

:: LATTICE6:condreg 1
registration
  cluster non empty finite Lattice-like -> complete (LattStr);
end;

:: LATTICE6:funcnot 1 => LATTICE6:func 1
definition
  let a1 be non empty Lattice-like LattStr;
  let a2 be Element of bool the carrier of a1;
  func A2 % -> Element of bool the carrier of LattPOSet a1 equals
    {b1 % where b1 is Element of the carrier of a1: b1 in a2};
end;

:: LATTICE6:def 1
theorem
for b1 being non empty Lattice-like LattStr
for b2 being Element of bool the carrier of b1 holds
   b2 % = {b3 % where b3 is Element of the carrier of b1: b3 in b2};

:: LATTICE6:funcnot 2 => LATTICE6:func 2
definition
  let a1 be non empty Lattice-like LattStr;
  let a2 be Element of bool the carrier of LattPOSet a1;
  func % A2 -> Element of bool the carrier of a1 equals
    {% b1 where b1 is Element of the carrier of LattPOSet a1: b1 in a2};
end;

:: LATTICE6:def 2
theorem
for b1 being non empty Lattice-like LattStr
for b2 being Element of bool the carrier of LattPOSet b1 holds
   % b2 = {% b3 where b3 is Element of the carrier of LattPOSet b1: b3 in b2};

:: LATTICE6:funcreg 1
registration
  let a1 be non empty finite Lattice-like LattStr;
  cluster LattPOSet a1 -> strict reflexive transitive antisymmetric well_founded;
end;

:: LATTICE6:attrnot 1 => LATTICE6:attr 1
definition
  let a1 be non empty Lattice-like LattStr;
  attr a1 is noetherian means
    LattPOSet a1 is well_founded;
end;

:: LATTICE6:dfs 3
definiens
  let a1 be non empty Lattice-like LattStr;
To prove
     a1 is noetherian
it is sufficient to prove
  thus LattPOSet a1 is well_founded;

:: LATTICE6:def 3
theorem
for b1 being non empty Lattice-like LattStr holds
      b1 is noetherian
   iff
      LattPOSet b1 is well_founded;

:: LATTICE6:attrnot 2 => LATTICE6:attr 2
definition
  let a1 be non empty Lattice-like LattStr;
  attr a1 is co-noetherian means
    (LattPOSet a1) ~ is well_founded;
end;

:: LATTICE6:dfs 4
definiens
  let a1 be non empty Lattice-like LattStr;
To prove
     a1 is co-noetherian
it is sufficient to prove
  thus (LattPOSet a1) ~ is well_founded;

:: LATTICE6:def 4
theorem
for b1 being non empty Lattice-like LattStr holds
      b1 is co-noetherian
   iff
      (LattPOSet b1) ~ is well_founded;

:: LATTICE6:exreg 2
registration
  cluster non empty join-commutative join-associative meet-commutative meet-associative meet-absorbing join-absorbing Lattice-like lower-bounded upper-bounded complete noetherian LattStr;
end;

:: LATTICE6:exreg 3
registration
  cluster non empty join-commutative join-associative meet-commutative meet-associative meet-absorbing join-absorbing Lattice-like lower-bounded upper-bounded complete co-noetherian LattStr;
end;

:: LATTICE6:th 1
theorem
for b1 being non empty Lattice-like LattStr holds
      b1 is noetherian
   iff
      b1 .: is co-noetherian;

:: LATTICE6:condreg 2
registration
  cluster non empty finite Lattice-like -> noetherian (LattStr);
end;

:: LATTICE6:condreg 3
registration
  cluster non empty finite Lattice-like -> co-noetherian (LattStr);
end;

:: LATTICE6:prednot 1 => LATTICE6:pred 1
definition
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  pred A2 is-upper-neighbour-of A3 means
    a2 <> a3 &
     a3 [= a2 &
     (for b1 being Element of the carrier of a1
           st a3 [= b1 & b1 [= a2 & b1 <> a2
        holds b1 = a3);
end;

:: LATTICE6:dfs 5
definiens
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
To prove
     a2 is-upper-neighbour-of a3
it is sufficient to prove
  thus a2 <> a3 &
     a3 [= a2 &
     (for b1 being Element of the carrier of a1
           st a3 [= b1 & b1 [= a2 & b1 <> a2
        holds b1 = a3);

:: LATTICE6:def 5
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3 being Element of the carrier of b1 holds
   b2 is-upper-neighbour-of b3
iff
   b2 <> b3 &
    b3 [= b2 &
    (for b4 being Element of the carrier of b1
          st b3 [= b4 & b4 [= b2 & b4 <> b2
       holds b4 = b3);

:: LATTICE6:prednot 2 => LATTICE6:pred 1
notation
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  synonym a3 is-lower-neighbour-of a2 for a2 is-upper-neighbour-of a3;
end;

:: LATTICE6:th 2
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b3 <> b4
   holds (b3 is-upper-neighbour-of b2 & b4 is-upper-neighbour-of b2 implies b2 = b4 "/\" b3) &
    (b2 is-upper-neighbour-of b3 & b2 is-upper-neighbour-of b4 implies b2 = b4 "\/" b3);

:: LATTICE6:th 3
theorem
for b1 being non empty Lattice-like noetherian LattStr
for b2, b3 being Element of the carrier of b1
      st b2 [= b3 & b2 <> b3
   holds ex b4 being Element of the carrier of b1 st
      b4 [= b3 & b4 is-upper-neighbour-of b2;

:: LATTICE6:th 4
theorem
for b1 being non empty Lattice-like co-noetherian LattStr
for b2, b3 being Element of the carrier of b1
      st b3 [= b2 & b2 <> b3
   holds ex b4 being Element of the carrier of b1 st
      b3 [= b4 & b2 is-upper-neighbour-of b4;

:: LATTICE6:th 5
theorem
for b1 being non empty Lattice-like upper-bounded LattStr
for b2 being Element of the carrier of b1 holds
   not b2 is-upper-neighbour-of Top b1;

:: LATTICE6:th 6
theorem
for b1 being non empty Lattice-like upper-bounded noetherian LattStr
for b2 being Element of the carrier of b1 holds
      b2 = Top b1
   iff
      for b3 being Element of the carrier of b1 holds
         not b3 is-upper-neighbour-of b2;

:: LATTICE6:th 7
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2 being Element of the carrier of b1 holds
   not Bottom b1 is-upper-neighbour-of b2;

:: LATTICE6:th 8
theorem
for b1 being non empty Lattice-like lower-bounded co-noetherian LattStr
for b2 being Element of the carrier of b1 holds
      b2 = Bottom b1
   iff
      for b3 being Element of the carrier of b1 holds
         not b2 is-upper-neighbour-of b3;

:: LATTICE6:funcnot 3 => LATTICE6:func 3
definition
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of the carrier of a1;
  func A2 *' -> Element of the carrier of a1 equals
    "/\"({b1 where b1 is Element of the carrier of a1: a2 [= b1 & b1 <> a2},a1);
end;

:: LATTICE6:def 6
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1 holds
   b2 *' = "/\"({b3 where b3 is Element of the carrier of b1: b2 [= b3 & b3 <> b2},b1);

:: LATTICE6:funcnot 4 => LATTICE6:func 4
definition
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of the carrier of a1;
  func *' A2 -> Element of the carrier of a1 equals
    "\/"({b1 where b1 is Element of the carrier of a1: b1 [= a2 & b1 <> a2},a1);
end;

:: LATTICE6:def 7
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1 holds
   *' b2 = "\/"({b3 where b3 is Element of the carrier of b1: b3 [= b2 & b3 <> b2},b1);

:: LATTICE6:attrnot 3 => LATTICE6:attr 3
definition
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of the carrier of a1;
  attr a2 is completely-meet-irreducible means
    a2 *' <> a2;
end;

:: LATTICE6:dfs 8
definiens
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of the carrier of a1;
To prove
     a2 is completely-meet-irreducible
it is sufficient to prove
  thus a2 *' <> a2;

:: LATTICE6:def 8
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1 holds
      b2 is completely-meet-irreducible(b1)
   iff
      b2 *' <> b2;

:: LATTICE6:attrnot 4 => LATTICE6:attr 4
definition
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of the carrier of a1;
  attr a2 is completely-join-irreducible means
    *' a2 <> a2;
end;

:: LATTICE6:dfs 9
definiens
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of the carrier of a1;
To prove
     a2 is completely-join-irreducible
it is sufficient to prove
  thus *' a2 <> a2;

:: LATTICE6:def 9
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1 holds
      b2 is completely-join-irreducible(b1)
   iff
      *' b2 <> b2;

:: LATTICE6:th 9
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1 holds
   b2 [= b2 *' & *' b2 [= b2;

:: LATTICE6:th 10
theorem
for b1 being non empty Lattice-like complete LattStr holds
   (Top b1) *' = Top b1 & (Top b1) % is meet-irreducible(LattPOSet b1);

:: LATTICE6:th 11
theorem
for b1 being non empty Lattice-like complete LattStr holds
   *' Bottom b1 = Bottom b1 & (Bottom b1) % is join-irreducible(LattPOSet b1);

:: LATTICE6:th 12
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1
      st b2 is completely-meet-irreducible(b1)
   holds b2 *' is-upper-neighbour-of b2 &
    (for b3 being Element of the carrier of b1
          st b3 is-upper-neighbour-of b2
       holds b3 = b2 *');

:: LATTICE6:th 13
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1
      st b2 is completely-join-irreducible(b1)
   holds b2 is-upper-neighbour-of *' b2 &
    (for b3 being Element of the carrier of b1
          st b2 is-upper-neighbour-of b3
       holds b3 = *' b2);

:: LATTICE6:th 14
theorem
for b1 being non empty Lattice-like complete noetherian LattStr
for b2 being Element of the carrier of b1 holds
      b2 is completely-meet-irreducible(b1)
   iff
      ex b3 being Element of the carrier of b1 st
         b3 is-upper-neighbour-of b2 &
          (for b4 being Element of the carrier of b1
                st b4 is-upper-neighbour-of b2
             holds b4 = b3);

:: LATTICE6:th 15
theorem
for b1 being non empty Lattice-like complete co-noetherian LattStr
for b2 being Element of the carrier of b1 holds
      b2 is completely-join-irreducible(b1)
   iff
      ex b3 being Element of the carrier of b1 st
         b2 is-upper-neighbour-of b3 &
          (for b4 being Element of the carrier of b1
                st b2 is-upper-neighbour-of b4
             holds b4 = b3);

:: LATTICE6:th 16
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1
      st b2 is completely-meet-irreducible(b1)
   holds b2 % is meet-irreducible(LattPOSet b1);

:: LATTICE6:th 17
theorem
for b1 being non empty Lattice-like complete noetherian LattStr
for b2 being Element of the carrier of b1
      st b2 <> Top b1
   holds    b2 is completely-meet-irreducible(b1)
   iff
      b2 % is meet-irreducible(LattPOSet b1);

:: LATTICE6:th 18
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1
      st b2 is completely-join-irreducible(b1)
   holds b2 % is join-irreducible(LattPOSet b1);

:: LATTICE6:th 19
theorem
for b1 being non empty Lattice-like complete co-noetherian LattStr
for b2 being Element of the carrier of b1
      st b2 <> Bottom b1
   holds    b2 is completely-join-irreducible(b1)
   iff
      b2 % is join-irreducible(LattPOSet b1);

:: LATTICE6:th 20
theorem
for b1 being non empty finite Lattice-like LattStr
for b2 being Element of the carrier of b1
      st b2 <> Bottom b1 & b2 <> Top b1
   holds (b2 is completely-meet-irreducible(b1) implies b2 % is meet-irreducible(LattPOSet b1)) &
    (b2 % is meet-irreducible(LattPOSet b1) implies b2 is completely-meet-irreducible(b1)) &
    (b2 is completely-join-irreducible(b1) implies b2 % is join-irreducible(LattPOSet b1)) &
    (b2 % is join-irreducible(LattPOSet b1) implies b2 is completely-join-irreducible(b1));

:: LATTICE6:attrnot 5 => LATTICE6:attr 5
definition
  let a1 be non empty Lattice-like LattStr;
  let a2 be Element of the carrier of a1;
  attr a2 is atomic means
    a2 is-upper-neighbour-of Bottom a1;
end;

:: LATTICE6:dfs 10
definiens
  let a1 be non empty Lattice-like LattStr;
  let a2 be Element of the carrier of a1;
To prove
     a2 is atomic
it is sufficient to prove
  thus a2 is-upper-neighbour-of Bottom a1;

:: LATTICE6:def 10
theorem
for b1 being non empty Lattice-like LattStr
for b2 being Element of the carrier of b1 holds
      b2 is atomic(b1)
   iff
      b2 is-upper-neighbour-of Bottom b1;

:: LATTICE6:attrnot 6 => LATTICE6:attr 6
definition
  let a1 be non empty Lattice-like LattStr;
  let a2 be Element of the carrier of a1;
  attr a2 is co-atomic means
    Top a1 is-upper-neighbour-of a2;
end;

:: LATTICE6:dfs 11
definiens
  let a1 be non empty Lattice-like LattStr;
  let a2 be Element of the carrier of a1;
To prove
     a2 is co-atomic
it is sufficient to prove
  thus Top a1 is-upper-neighbour-of a2;

:: LATTICE6:def 11
theorem
for b1 being non empty Lattice-like LattStr
for b2 being Element of the carrier of b1 holds
      b2 is co-atomic(b1)
   iff
      Top b1 is-upper-neighbour-of b2;

:: LATTICE6:th 21
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1
      st b2 is atomic(b1)
   holds b2 is completely-join-irreducible(b1);

:: LATTICE6:th 22
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of the carrier of b1
      st b2 is co-atomic(b1)
   holds b2 is completely-meet-irreducible(b1);

:: LATTICE6:attrnot 7 => LATTICE6:attr 7
definition
  let a1 be non empty Lattice-like LattStr;
  attr a1 is atomic means
    for b1 being Element of the carrier of a1 holds
       ex b2 being Element of bool the carrier of a1 st
          (for b3 being Element of the carrier of a1
                 st b3 in b2
              holds b3 is atomic(a1)) &
           b1 = "\/"(b2,a1);
end;

:: LATTICE6:dfs 12
definiens
  let a1 be non empty Lattice-like LattStr;
To prove
     a1 is atomic
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       ex b2 being Element of bool the carrier of a1 st
          (for b3 being Element of the carrier of a1
                 st b3 in b2
              holds b3 is atomic(a1)) &
           b1 = "\/"(b2,a1);

:: LATTICE6:def 12
theorem
for b1 being non empty Lattice-like LattStr holds
      b1 is atomic
   iff
      for b2 being Element of the carrier of b1 holds
         ex b3 being Element of bool the carrier of b1 st
            (for b4 being Element of the carrier of b1
                   st b4 in b3
                holds b4 is atomic(b1)) &
             b2 = "\/"(b3,b1);

:: LATTICE6:exreg 4
registration
  cluster non empty trivial strict join-commutative join-associative meet-commutative meet-associative meet-absorbing join-absorbing Lattice-like LattStr;
end;

:: LATTICE6:exreg 5
registration
  cluster non empty join-commutative join-associative meet-commutative meet-associative meet-absorbing join-absorbing Lattice-like complete atomic LattStr;
end;

:: LATTICE6:attrnot 8 => LATTICE6:attr 8
definition
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of bool the carrier of a1;
  attr a2 is supremum-dense means
    for b1 being Element of the carrier of a1 holds
       ex b2 being Element of bool a2 st
          b1 = "\/"(b2,a1);
end;

:: LATTICE6:dfs 13
definiens
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of bool the carrier of a1;
To prove
     a2 is supremum-dense
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       ex b2 being Element of bool a2 st
          b1 = "\/"(b2,a1);

:: LATTICE6:def 13
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of bool the carrier of b1 holds
      b2 is supremum-dense(b1)
   iff
      for b3 being Element of the carrier of b1 holds
         ex b4 being Element of bool b2 st
            b3 = "\/"(b4,b1);

:: LATTICE6:attrnot 9 => LATTICE6:attr 9
definition
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of bool the carrier of a1;
  attr a2 is infimum-dense means
    for b1 being Element of the carrier of a1 holds
       ex b2 being Element of bool a2 st
          b1 = "/\"(b2,a1);
end;

:: LATTICE6:dfs 14
definiens
  let a1 be non empty Lattice-like complete LattStr;
  let a2 be Element of bool the carrier of a1;
To prove
     a2 is infimum-dense
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       ex b2 being Element of bool a2 st
          b1 = "/\"(b2,a1);

:: LATTICE6:def 14
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of bool the carrier of b1 holds
      b2 is infimum-dense(b1)
   iff
      for b3 being Element of the carrier of b1 holds
         ex b4 being Element of bool b2 st
            b3 = "/\"(b4,b1);

:: LATTICE6:th 23
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of bool the carrier of b1 holds
      b2 is supremum-dense(b1)
   iff
      for b3 being Element of the carrier of b1 holds
         b3 = "\/"({b4 where b4 is Element of the carrier of b1: b4 in b2 & b4 [= b3},b1);

:: LATTICE6:th 24
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of bool the carrier of b1 holds
      b2 is infimum-dense(b1)
   iff
      for b3 being Element of the carrier of b1 holds
         b3 = "/\"({b4 where b4 is Element of the carrier of b1: b4 in b2 & b3 [= b4},b1);

:: LATTICE6:th 25
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of bool the carrier of b1 holds
      b2 is infimum-dense(b1)
   iff
      b2 % is order-generating(LattPOSet b1);

:: LATTICE6:funcnot 5 => LATTICE6:func 5
definition
  let a1 be non empty Lattice-like complete LattStr;
  func MIRRS A1 -> Element of bool the carrier of a1 equals
    {b1 where b1 is Element of the carrier of a1: b1 is completely-meet-irreducible(a1)};
end;

:: LATTICE6:def 15
theorem
for b1 being non empty Lattice-like complete LattStr holds
   MIRRS b1 = {b2 where b2 is Element of the carrier of b1: b2 is completely-meet-irreducible(b1)};

:: LATTICE6:funcnot 6 => LATTICE6:func 6
definition
  let a1 be non empty Lattice-like complete LattStr;
  func JIRRS A1 -> Element of bool the carrier of a1 equals
    {b1 where b1 is Element of the carrier of a1: b1 is completely-join-irreducible(a1)};
end;

:: LATTICE6:def 16
theorem
for b1 being non empty Lattice-like complete LattStr holds
   JIRRS b1 = {b2 where b2 is Element of the carrier of b1: b2 is completely-join-irreducible(b1)};

:: LATTICE6:th 26
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of bool the carrier of b1
      st b2 is supremum-dense(b1)
   holds JIRRS b1 c= b2;

:: LATTICE6:th 27
theorem
for b1 being non empty Lattice-like complete LattStr
for b2 being Element of bool the carrier of b1
      st b2 is infimum-dense(b1)
   holds MIRRS b1 c= b2;

:: LATTICE6:funcreg 2
registration
  let a1 be non empty Lattice-like complete co-noetherian LattStr;
  cluster MIRRS a1 -> infimum-dense;
end;

:: LATTICE6:funcreg 3
registration
  let a1 be non empty Lattice-like complete noetherian LattStr;
  cluster JIRRS a1 -> supremum-dense;
end;