:: REAL_LAT semantic presentation

definition
func minreal -> BinOp of REAL means :Def1: :: REAL_LAT:def 1
for b1, b2 being Real holds a1 . b1,b2 = min b1,b2;
existence
ex b1 being BinOp of REAL st
for b2, b3 being Real holds b1 . b2,b3 = min b2,b3
proof end;
uniqueness
for b1, b2 being BinOp of REAL st ( for b3, b4 being Real holds b1 . b3,b4 = min b3,b4 ) & ( for b3, b4 being Real holds b2 . b3,b4 = min b3,b4 ) holds
b1 = b2
proof end;
func maxreal -> BinOp of REAL means :Def2: :: REAL_LAT:def 2
for b1, b2 being Real holds a1 . b1,b2 = max b1,b2;
existence
ex b1 being BinOp of REAL st
for b2, b3 being Real holds b1 . b2,b3 = max b2,b3
proof end;
uniqueness
for b1, b2 being BinOp of REAL st ( for b3, b4 being Real holds b1 . b3,b4 = max b3,b4 ) & ( for b3, b4 being Real holds b2 . b3,b4 = max b3,b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def1 defines minreal REAL_LAT:def 1 :
for b1 being BinOp of REAL holds
( b1 = minreal iff for b2, b3 being Real holds b1 . b2,b3 = min b2,b3 );

:: deftheorem Def2 defines maxreal REAL_LAT:def 2 :
for b1 being BinOp of REAL holds
( b1 = maxreal iff for b2, b3 being Real holds b1 . b2,b3 = max b2,b3 );

definition
canceled;
func Real_Lattice -> strict LattStr equals :: REAL_LAT:def 4
LattStr(# REAL ,maxreal ,minreal #);
coherence
LattStr(# REAL ,maxreal ,minreal #) is strict LattStr
;
end;

:: deftheorem Def3 REAL_LAT:def 3 :
canceled;

:: deftheorem Def4 defines Real_Lattice REAL_LAT:def 4 :
Real_Lattice = LattStr(# REAL ,maxreal ,minreal #);

registration
cluster -> real Element of the carrier of Real_Lattice ;
coherence
for b1 being Element of Real_Lattice holds b1 is real
by XREAL_0:def 1;
end;

registration
cluster Real_Lattice -> non empty strict ;
coherence
not Real_Lattice is empty
;
end;

Lemma3: for b1, b2 being Element of Real_Lattice holds b1 "\/" b2 = b2 "\/" b1
proof end;

Lemma4: for b1, b2, b3 being Element of Real_Lattice holds b1 "\/" (b2 "\/" b3) = (b1 "\/" b2) "\/" b3
proof end;

Lemma5: for b1, b2 being Element of Real_Lattice holds (b1 "/\" b2) "\/" b2 = b2
proof end;

Lemma6: for b1, b2 being Element of Real_Lattice holds b1 "/\" b2 = b2 "/\" b1
proof end;

Lemma7: for b1, b2, b3 being Element of Real_Lattice holds b1 "/\" (b2 "/\" b3) = (b1 "/\" b2) "/\" b3
proof end;

Lemma8: for b1, b2 being Element of Real_Lattice holds b1 "/\" (b1 "\/" b2) = b1
proof end;

registration
cluster Real_Lattice -> non empty strict Lattice-like ;
coherence
Real_Lattice is Lattice-like
proof end;
end;

Lemma9: for b1, b2, b3 being Element of Real_Lattice holds b1 "/\" (b2 "\/" b3) = (b1 "/\" b2) "\/" (b1 "/\" b3)
proof end;

theorem Th1: :: REAL_LAT:1
canceled;

theorem Th2: :: REAL_LAT:2
canceled;

theorem Th3: :: REAL_LAT:3
canceled;

theorem Th4: :: REAL_LAT:4
canceled;

theorem Th5: :: REAL_LAT:5
canceled;

theorem Th6: :: REAL_LAT:6
canceled;

theorem Th7: :: REAL_LAT:7
canceled;

theorem Th8: :: REAL_LAT:8
for b1, b2 being Element of Real_Lattice holds maxreal . b1,b2 = maxreal . b2,b1
proof end;

theorem Th9: :: REAL_LAT:9
for b1, b2 being Element of Real_Lattice holds minreal . b1,b2 = minreal . b2,b1
proof end;

theorem Th10: :: REAL_LAT:10
for b1, b2, b3 being Element of Real_Lattice holds
( maxreal . b1,(maxreal . b2,b3) = maxreal . (maxreal . b2,b3),b1 & maxreal . b1,(maxreal . b2,b3) = maxreal . (maxreal . b1,b2),b3 & maxreal . b1,(maxreal . b2,b3) = maxreal . (maxreal . b2,b1),b3 & maxreal . b1,(maxreal . b2,b3) = maxreal . (maxreal . b3,b1),b2 & maxreal . b1,(maxreal . b2,b3) = maxreal . (maxreal . b3,b2),b1 & maxreal . b1,(maxreal . b2,b3) = maxreal . (maxreal . b1,b3),b2 )
proof end;

theorem Th11: :: REAL_LAT:11
for b1, b2, b3 being Element of Real_Lattice holds
( minreal . b1,(minreal . b2,b3) = minreal . (minreal . b2,b3),b1 & minreal . b1,(minreal . b2,b3) = minreal . (minreal . b1,b2),b3 & minreal . b1,(minreal . b2,b3) = minreal . (minreal . b2,b1),b3 & minreal . b1,(minreal . b2,b3) = minreal . (minreal . b3,b1),b2 & minreal . b1,(minreal . b2,b3) = minreal . (minreal . b3,b2),b1 & minreal . b1,(minreal . b2,b3) = minreal . (minreal . b1,b3),b2 )
proof end;

theorem Th12: :: REAL_LAT:12
for b1, b2 being Element of Real_Lattice holds
( maxreal . (minreal . b1,b2),b2 = b2 & maxreal . b2,(minreal . b1,b2) = b2 & maxreal . b2,(minreal . b2,b1) = b2 & maxreal . (minreal . b2,b1),b2 = b2 )
proof end;

theorem Th13: :: REAL_LAT:13
for b1, b2 being Element of Real_Lattice holds
( minreal . b1,(maxreal . b1,b2) = b1 & minreal . (maxreal . b2,b1),b1 = b1 & minreal . b1,(maxreal . b2,b1) = b1 & minreal . (maxreal . b1,b2),b1 = b1 )
proof end;

theorem Th14: :: REAL_LAT:14
for b1, b2, b3 being Element of Real_Lattice holds minreal . b1,(maxreal . b2,b3) = maxreal . (minreal . b1,b2),(minreal . b1,b3)
proof end;

registration
cluster Real_Lattice -> non empty strict Lattice-like distributive ;
coherence
Real_Lattice is distributive
by Lemma9, LATTICES:def 11;
end;

definition
let c1 be non empty set ;
func maxfuncreal c1 -> BinOp of Funcs a1,REAL means :Def5: :: REAL_LAT:def 5
for b1, b2 being Element of Funcs a1,REAL holds a2 . b1,b2 = maxreal .: b1,b2;
existence
ex b1 being BinOp of Funcs c1,REAL st
for b2, b3 being Element of Funcs c1,REAL holds b1 . b2,b3 = maxreal .: b2,b3
proof end;
uniqueness
for b1, b2 being BinOp of Funcs c1,REAL st ( for b3, b4 being Element of Funcs c1,REAL holds b1 . b3,b4 = maxreal .: b3,b4 ) & ( for b3, b4 being Element of Funcs c1,REAL holds b2 . b3,b4 = maxreal .: b3,b4 ) holds
b1 = b2
proof end;
func minfuncreal c1 -> BinOp of Funcs a1,REAL means :Def6: :: REAL_LAT:def 6
for b1, b2 being Element of Funcs a1,REAL holds a2 . b1,b2 = minreal .: b1,b2;
existence
ex b1 being BinOp of Funcs c1,REAL st
for b2, b3 being Element of Funcs c1,REAL holds b1 . b2,b3 = minreal .: b2,b3
proof end;
uniqueness
for b1, b2 being BinOp of Funcs c1,REAL st ( for b3, b4 being Element of Funcs c1,REAL holds b1 . b3,b4 = minreal .: b3,b4 ) & ( for b3, b4 being Element of Funcs c1,REAL holds b2 . b3,b4 = minreal .: b3,b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines maxfuncreal REAL_LAT:def 5 :
for b1 being non empty set
for b2 being BinOp of Funcs b1,REAL holds
( b2 = maxfuncreal b1 iff for b3, b4 being Element of Funcs b1,REAL holds b2 . b3,b4 = maxreal .: b3,b4 );

:: deftheorem Def6 defines minfuncreal REAL_LAT:def 6 :
for b1 being non empty set
for b2 being BinOp of Funcs b1,REAL holds
( b2 = minfuncreal b1 iff for b3, b4 being Element of Funcs b1,REAL holds b2 . b3,b4 = minreal .: b3,b4 );

Lemma19: for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Function of b1,b2 holds b3 in dom b4
proof end;

theorem Th15: :: REAL_LAT:15
canceled;

theorem Th16: :: REAL_LAT:16
canceled;

theorem Th17: :: REAL_LAT:17
canceled;

theorem Th18: :: REAL_LAT:18
canceled;

theorem Th19: :: REAL_LAT:19
canceled;

theorem Th20: :: REAL_LAT:20
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (maxfuncreal b1) . b2,b3 = (maxfuncreal b1) . b3,b2
proof end;

theorem Th21: :: REAL_LAT:21
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (minfuncreal b1) . b2,b3 = (minfuncreal b1) . b3,b2
proof end;

theorem Th22: :: REAL_LAT:22
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,REAL holds (maxfuncreal b1) . ((maxfuncreal b1) . b2,b3),b4 = (maxfuncreal b1) . b2,((maxfuncreal b1) . b3,b4)
proof end;

theorem Th23: :: REAL_LAT:23
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,REAL holds (minfuncreal b1) . ((minfuncreal b1) . b2,b3),b4 = (minfuncreal b1) . b2,((minfuncreal b1) . b3,b4)
proof end;

theorem Th24: :: REAL_LAT:24
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (maxfuncreal b1) . b2,((minfuncreal b1) . b2,b3) = b2
proof end;

theorem Th25: :: REAL_LAT:25
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (maxfuncreal b1) . ((minfuncreal b1) . b2,b3),b2 = b2
proof end;

theorem Th26: :: REAL_LAT:26
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (maxfuncreal b1) . ((minfuncreal b1) . b2,b3),b3 = b3
proof end;

theorem Th27: :: REAL_LAT:27
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (maxfuncreal b1) . b2,((minfuncreal b1) . b3,b2) = b2
proof end;

theorem Th28: :: REAL_LAT:28
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (minfuncreal b1) . b2,((maxfuncreal b1) . b2,b3) = b2
proof end;

theorem Th29: :: REAL_LAT:29
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (minfuncreal b1) . b2,((maxfuncreal b1) . b3,b2) = b2
proof end;

theorem Th30: :: REAL_LAT:30
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (minfuncreal b1) . ((maxfuncreal b1) . b2,b3),b3 = b3
proof end;

theorem Th31: :: REAL_LAT:31
for b1 being non empty set
for b2, b3 being Element of Funcs b1,REAL holds (minfuncreal b1) . ((maxfuncreal b1) . b2,b3),b2 = b2
proof end;

theorem Th32: :: REAL_LAT:32
for b1 being non empty set
for b2, b3, b4 being Element of Funcs b1,REAL holds (minfuncreal b1) . b2,((maxfuncreal b1) . b3,b4) = (maxfuncreal b1) . ((minfuncreal b1) . b2,b3),((minfuncreal b1) . b2,b4)
proof end;

definition
let c1 be non empty set ;
let c2 be Element of LattStr(# (Funcs c1,REAL ),(maxfuncreal c1),(minfuncreal c1) #);
canceled;
canceled;
func @ c2 -> Element of Funcs a1,REAL equals :: REAL_LAT:def 9
a2;
coherence
c2 is Element of Funcs c1,REAL
;
end;

:: deftheorem Def7 REAL_LAT:def 7 :
canceled;

:: deftheorem Def8 REAL_LAT:def 8 :
canceled;

:: deftheorem Def9 defines @ REAL_LAT:def 9 :
for b1 being non empty set
for b2 being Element of LattStr(# (Funcs b1,REAL ),(maxfuncreal b1),(minfuncreal b1) #) holds @ b2 = b2;

Lemma31: for b1 being non empty set
for b2, b3, b4 being Element of LattStr(# (Funcs b1,REAL ),(maxfuncreal b1),(minfuncreal b1) #) holds b2 "\/" (b3 "\/" b4) = (b2 "\/" b3) "\/" b4
by Th22;

Lemma32: for b1 being non empty set
for b2, b3, b4 being Element of LattStr(# (Funcs b1,REAL ),(maxfuncreal b1),(minfuncreal b1) #) holds b2 "/\" (b3 "/\" b4) = (b2 "/\" b3) "/\" b4
by Th23;

definition
let c1 be non empty set ;
func RealFunc_Lattice c1 -> strict Lattice equals :: REAL_LAT:def 10
LattStr(# (Funcs a1,REAL ),(maxfuncreal a1),(minfuncreal a1) #);
coherence
LattStr(# (Funcs c1,REAL ),(maxfuncreal c1),(minfuncreal c1) #) is strict Lattice
proof end;
end;

:: deftheorem Def10 defines RealFunc_Lattice REAL_LAT:def 10 :
for b1 being non empty set holds RealFunc_Lattice b1 = LattStr(# (Funcs b1,REAL ),(maxfuncreal b1),(minfuncreal b1) #);

theorem Th33: :: REAL_LAT:33
canceled;

theorem Th34: :: REAL_LAT:34
canceled;

theorem Th35: :: REAL_LAT:35
canceled;

theorem Th36: :: REAL_LAT:36
canceled;

theorem Th37: :: REAL_LAT:37
canceled;

theorem Th38: :: REAL_LAT:38
canceled;

theorem Th39: :: REAL_LAT:39
canceled;

theorem Th40: :: REAL_LAT:40
for b1 being non empty set
for b2, b3 being Element of (RealFunc_Lattice b1) holds (maxfuncreal b1) . b2,b3 = (maxfuncreal b1) . b3,b2
proof end;

theorem Th41: :: REAL_LAT:41
for b1 being non empty set
for b2, b3 being Element of (RealFunc_Lattice b1) holds (minfuncreal b1) . b2,b3 = (minfuncreal b1) . b3,b2
proof end;

theorem Th42: :: REAL_LAT:42
for b1 being non empty set
for b2, b3, b4 being Element of (RealFunc_Lattice b1) holds
( (maxfuncreal b1) . b2,((maxfuncreal b1) . b3,b4) = (maxfuncreal b1) . ((maxfuncreal b1) . b3,b4),b2 & (maxfuncreal b1) . b2,((maxfuncreal b1) . b3,b4) = (maxfuncreal b1) . ((maxfuncreal b1) . b2,b3),b4 & (maxfuncreal b1) . b2,((maxfuncreal b1) . b3,b4) = (maxfuncreal b1) . ((maxfuncreal b1) . b3,b2),b4 & (maxfuncreal b1) . b2,((maxfuncreal b1) . b3,b4) = (maxfuncreal b1) . ((maxfuncreal b1) . b4,b2),b3 & (maxfuncreal b1) . b2,((maxfuncreal b1) . b3,b4) = (maxfuncreal b1) . ((maxfuncreal b1) . b4,b3),b2 & (maxfuncreal b1) . b2,((maxfuncreal b1) . b3,b4) = (maxfuncreal b1) . ((maxfuncreal b1) . b2,b4),b3 )
proof end;

theorem Th43: :: REAL_LAT:43
for b1 being non empty set
for b2, b3, b4 being Element of (RealFunc_Lattice b1) holds
( (minfuncreal b1) . b2,((minfuncreal b1) . b3,b4) = (minfuncreal b1) . ((minfuncreal b1) . b3,b4),b2 & (minfuncreal b1) . b2,((minfuncreal b1) . b3,b4) = (minfuncreal b1) . ((minfuncreal b1) . b2,b3),b4 & (minfuncreal b1) . b2,((minfuncreal b1) . b3,b4) = (minfuncreal b1) . ((minfuncreal b1) . b3,b2),b4 & (minfuncreal b1) . b2,((minfuncreal b1) . b3,b4) = (minfuncreal b1) . ((minfuncreal b1) . b4,b2),b3 & (minfuncreal b1) . b2,((minfuncreal b1) . b3,b4) = (minfuncreal b1) . ((minfuncreal b1) . b4,b3),b2 & (minfuncreal b1) . b2,((minfuncreal b1) . b3,b4) = (minfuncreal b1) . ((minfuncreal b1) . b2,b4),b3 )
proof end;

theorem Th44: :: REAL_LAT:44
for b1 being non empty set
for b2, b3 being Element of (RealFunc_Lattice b1) holds
( (maxfuncreal b1) . ((minfuncreal b1) . b2,b3),b3 = b3 & (maxfuncreal b1) . b3,((minfuncreal b1) . b2,b3) = b3 & (maxfuncreal b1) . b3,((minfuncreal b1) . b3,b2) = b3 & (maxfuncreal b1) . ((minfuncreal b1) . b3,b2),b3 = b3 )
proof end;

theorem Th45: :: REAL_LAT:45
for b1 being non empty set
for b2, b3 being Element of (RealFunc_Lattice b1) holds
( (minfuncreal b1) . b2,((maxfuncreal b1) . b2,b3) = b2 & (minfuncreal b1) . ((maxfuncreal b1) . b3,b2),b2 = b2 & (minfuncreal b1) . b2,((maxfuncreal b1) . b3,b2) = b2 & (minfuncreal b1) . ((maxfuncreal b1) . b2,b3),b2 = b2 )
proof end;

theorem Th46: :: REAL_LAT:46
for b1 being non empty set
for b2, b3, b4 being Element of (RealFunc_Lattice b1) holds (minfuncreal b1) . b2,((maxfuncreal b1) . b3,b4) = (maxfuncreal b1) . ((minfuncreal b1) . b2,b3),((minfuncreal b1) . b2,b4) by Th32;

theorem Th47: :: REAL_LAT:47
for b1 being non empty set holds RealFunc_Lattice b1 is D_Lattice
proof end;