:: OPOSET_1 semantic presentation

definition
attr a1 is strict;
struct OrthoRelStr -> RelStr , ComplStr ;
aggr OrthoRelStr(# carrier, InternalRel, Compl #) -> OrthoRelStr ;
end;

definition
let c1, c2 be set ;
func {} c1,c2 -> Relation of a1,a2 equals :: OPOSET_1:def 1
{} ;
correctness
coherence
{} is Relation of c1,c2
;
by RELSET_1:25;
func [#] c1,c2 -> Relation of a1,a2 equals :: OPOSET_1:def 2
[:a1,a2:];
correctness
coherence
[:c1,c2:] is Relation of c1,c2
;
by RELSET_1:def 1;
end;

:: deftheorem Def1 defines {} OPOSET_1:def 1 :
for b1, b2 being set holds {} b1,b2 = {} ;

:: deftheorem Def2 defines [#] OPOSET_1:def 2 :
for b1, b2 being set holds [#] b1,b2 = [:b1,b2:];

theorem Th1: :: OPOSET_1:1
for b1 being non empty set holds field (id b1) = b1
proof end;

Lemma2: id {{} } = {[{} ,{} ]}
by SYSREL:30;

theorem Th2: :: OPOSET_1:2
canceled;

theorem Th3: :: OPOSET_1:3
op1 = {[{} ,{} ]}
proof end;

theorem Th4: :: OPOSET_1:4
for b1 being non empty reflexive antisymmetric RelStr
for b2, b3 being Element of b1 st b2 <= b3 holds
( sup {b2,b3} = b3 & inf {b2,b3} = b2 )
proof end;

theorem Th5: :: OPOSET_1:5
canceled;

theorem Th6: :: OPOSET_1:6
for b1, b2 being set holds field ({} b1,b2) = {}
proof end;

theorem Th7: :: OPOSET_1:7
for b1 being non empty set
for b2 being Relation of b1 st b2 is_reflexive_in b1 holds
( b2 is reflexive & field b2 = b1 )
proof end;

theorem Th8: :: OPOSET_1:8
for b1 being non empty set
for b2 being Relation of b1 st b2 is_symmetric_in b1 holds
b2 is symmetric
proof end;

theorem Th9: :: OPOSET_1:9
for b1, b2 being non empty set
for b3 being Relation of b1 st b3 is symmetric & field b3 c= b2 holds
b3 is_symmetric_in b2
proof end;

theorem Th10: :: OPOSET_1:10
for b1, b2 being non empty set
for b3 being Relation of b1 st b3 is antisymmetric & field b3 c= b2 holds
b3 is_antisymmetric_in b2
proof end;

theorem Th11: :: OPOSET_1:11
for b1 being non empty set
for b2 being Relation of b1 st b2 is_antisymmetric_in b1 holds
b2 is antisymmetric
proof end;

theorem Th12: :: OPOSET_1:12
for b1, b2 being non empty set
for b3 being Relation of b1 st b3 is transitive & field b3 c= b2 holds
b3 is_transitive_in b2
proof end;

theorem Th13: :: OPOSET_1:13
for b1 being non empty set
for b2 being Relation of b1 st b2 is_transitive_in b1 holds
b2 is transitive
proof end;

theorem Th14: :: OPOSET_1:14
for b1, b2 being non empty set
for b3 being Relation of b1 st b3 is asymmetric & field b3 c= b2 holds
b3 is_asymmetric_in b2
proof end;

theorem Th15: :: OPOSET_1:15
for b1 being non empty set
for b2 being Relation of b1 st b2 is_asymmetric_in b1 holds
b2 is asymmetric
proof end;

theorem Th16: :: OPOSET_1:16
for b1, b2 being non empty set
for b3 being Relation of b1 st b3 is irreflexive & field b3 c= b2 holds
b3 is_irreflexive_in b2
proof end;

theorem Th17: :: OPOSET_1:17
for b1 being non empty set
for b2 being Relation of b1 st b2 is_irreflexive_in b1 holds
b2 is irreflexive
proof end;

registration
let c1 be set ;
cluster irreflexive asymmetric transitive Relation of a1,a1;
existence
ex b1 being Relation of c1 st
( b1 is irreflexive & b1 is asymmetric & b1 is transitive )
proof end;
end;

registration
let c1 be non empty set ;
let c2 be Relation of c1;
let c3 be UnOp of c1;
cluster OrthoRelStr(# a1,a2,a3 #) -> non empty ;
coherence
not OrthoRelStr(# c1,c2,c3 #) is empty
proof end;
end;

registration
cluster non empty strict OrthoRelStr ;
existence
ex b1 being OrthoRelStr st
( not b1 is empty & b1 is strict )
proof end;
end;

definition
let c1 be non empty set ;
let c2 be Function of c1,c1;
attr a2 is dneg means :Def3: :: OPOSET_1:def 3
for b1 being Element of a1 holds a2 . (a2 . b1) = b1;
end;

:: deftheorem Def3 defines dneg OPOSET_1:def 3 :
for b1 being non empty set
for b2 being Function of b1,b1 holds
( b2 is dneg iff for b3 being Element of b1 holds b2 . (b2 . b3) = b3 );

notation
let c1 be non empty set ;
let c2 be Function of c1,c1;
synonym involutive c2 for dneg c2;
end;

theorem Th18: :: OPOSET_1:18
canceled;

theorem Th19: :: OPOSET_1:19
op1 is dneg
proof end;

theorem Th20: :: OPOSET_1:20
for b1 being non empty set holds id b1 is dneg
proof end;

registration
let c1 be non empty OrthoRelStr ;
cluster dneg Relation of the carrier of a1,the carrier of a1;
existence
ex b1 being Function of c1,c1 st b1 is dneg
proof end;
end;

definition
func TrivOrthoRelStr -> strict OrthoRelStr equals :Def4: :: OPOSET_1:def 4
OrthoRelStr(# {{} },(id {{} }),op1 #);
coherence
OrthoRelStr(# {{} },(id {{} }),op1 #) is strict OrthoRelStr
;
end;

:: deftheorem Def4 defines TrivOrthoRelStr OPOSET_1:def 4 :
TrivOrthoRelStr = OrthoRelStr(# {{} },(id {{} }),op1 #);

notation
synonym TrivPoset for TrivOrthoRelStr ;
end;

Lemma20: TrivOrthoRelStr is trivial
proof end;

registration
cluster TrivOrthoRelStr -> non empty trivial strict ;
coherence
( not TrivOrthoRelStr is empty & TrivOrthoRelStr is trivial )
by Lemma20;
end;

definition
func TrivAsymOrthoRelStr -> strict OrthoRelStr equals :: OPOSET_1:def 5
OrthoRelStr(# {{} },({} {{} },{{} }),op1 #);
coherence
OrthoRelStr(# {{} },({} {{} },{{} }),op1 #) is strict OrthoRelStr
;
end;

:: deftheorem Def5 defines TrivAsymOrthoRelStr OPOSET_1:def 5 :
TrivAsymOrthoRelStr = OrthoRelStr(# {{} },({} {{} },{{} }),op1 #);

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

definition
let c1 be non empty OrthoRelStr ;
attr a1 is Dneg means :Def6: :: OPOSET_1:def 6
ex b1 being Function of a1,a1 st
( b1 = the Compl of a1 & b1 is dneg );
end;

:: deftheorem Def6 defines Dneg OPOSET_1:def 6 :
for b1 being non empty OrthoRelStr holds
( b1 is Dneg iff ex b2 being Function of b1,b1 st
( b2 = the Compl of b1 & b2 is dneg ) );

theorem Th21: :: OPOSET_1:21
TrivOrthoRelStr is Dneg by Def6, Th19;

registration
cluster TrivOrthoRelStr -> non empty trivial strict Dneg ;
coherence
TrivOrthoRelStr is Dneg
by Def6, Th19;
end;

registration
cluster non empty Dneg OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st b1 is Dneg
by Def4;
end;

definition
let c1 be non empty RelStr ;
canceled;
canceled;
attr a1 is SubReFlexive means :Def9: :: OPOSET_1:def 9
the InternalRel of a1 is reflexive;
end;

:: deftheorem Def7 OPOSET_1:def 7 :
canceled;

:: deftheorem Def8 OPOSET_1:def 8 :
canceled;

:: deftheorem Def9 defines SubReFlexive OPOSET_1:def 9 :
for b1 being non empty RelStr holds
( b1 is SubReFlexive iff the InternalRel of b1 is reflexive );

theorem Th22: :: OPOSET_1:22
for b1 being non empty RelStr st b1 is reflexive holds
b1 is SubReFlexive
proof end;

theorem Th23: :: OPOSET_1:23
TrivOrthoRelStr is reflexive
proof end;

registration
cluster TrivOrthoRelStr -> non empty reflexive trivial strict Dneg ;
coherence
TrivOrthoRelStr is reflexive
by Th23;
end;

registration
cluster non empty reflexive strict OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is reflexive & b1 is strict )
by Th23;
end;

definition
let c1 be non empty RelStr ;
canceled;
attr a1 is SubIrreFlexive means :Def11: :: OPOSET_1:def 11
the InternalRel of a1 is irreflexive;
redefine attr a1 is irreflexive means :Def12: :: OPOSET_1:def 12
the InternalRel of a1 is_irreflexive_in the carrier of a1;
compatibility
( c1 is irreflexive iff the InternalRel of c1 is_irreflexive_in the carrier of c1 )
proof end;
end;

:: deftheorem Def10 OPOSET_1:def 10 :
canceled;

:: deftheorem Def11 defines SubIrreFlexive OPOSET_1:def 11 :
for b1 being non empty RelStr holds
( b1 is SubIrreFlexive iff the InternalRel of b1 is irreflexive );

:: deftheorem Def12 defines irreflexive OPOSET_1:def 12 :
for b1 being non empty RelStr holds
( b1 is irreflexive iff the InternalRel of b1 is_irreflexive_in the carrier of b1 );

theorem Th24: :: OPOSET_1:24
for b1 being non empty RelStr st b1 is irreflexive holds
b1 is SubIrreFlexive
proof end;

theorem Th25: :: OPOSET_1:25
TrivAsymOrthoRelStr is irreflexive
proof end;

registration
cluster non empty irreflexive -> non empty SubIrreFlexive OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is irreflexive holds
b1 is SubIrreFlexive
;
by Th24;
end;

registration
cluster TrivAsymOrthoRelStr -> non empty irreflexive strict SubIrreFlexive ;
coherence
TrivAsymOrthoRelStr is irreflexive
by Th25;
end;

registration
cluster non empty irreflexive strict SubIrreFlexive OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is irreflexive & b1 is strict )
by Th25;
end;

definition
let c1 be non empty RelStr ;
attr a1 is SubSymmetric means :Def13: :: OPOSET_1:def 13
the InternalRel of a1 is symmetric Relation of the carrier of a1;
end;

:: deftheorem Def13 defines SubSymmetric OPOSET_1:def 13 :
for b1 being non empty RelStr holds
( b1 is SubSymmetric iff the InternalRel of b1 is symmetric Relation of the carrier of b1 );

theorem Th26: :: OPOSET_1:26
for b1 being non empty RelStr st b1 is symmetric holds
b1 is SubSymmetric
proof end;

theorem Th27: :: OPOSET_1:27
TrivOrthoRelStr is symmetric
proof end;

registration
cluster non empty symmetric -> non empty SubSymmetric OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is symmetric holds
b1 is SubSymmetric
;
by Th26;
end;

registration
cluster non empty symmetric strict SubSymmetric OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is symmetric & b1 is strict )
by Th27;
end;

definition
let c1 be non empty RelStr ;
canceled;
attr a1 is SubAntisymmetric means :Def15: :: OPOSET_1:def 15
the InternalRel of a1 is antisymmetric Relation of the carrier of a1;
end;

:: deftheorem Def14 OPOSET_1:def 14 :
canceled;

:: deftheorem Def15 defines SubAntisymmetric OPOSET_1:def 15 :
for b1 being non empty RelStr holds
( b1 is SubAntisymmetric iff the InternalRel of b1 is antisymmetric Relation of the carrier of b1 );

theorem Th28: :: OPOSET_1:28
for b1 being non empty RelStr st b1 is antisymmetric holds
b1 is SubAntisymmetric
proof end;

Lemma33: TrivOrthoRelStr is antisymmetric
;

registration
cluster non empty antisymmetric -> non empty SubAntisymmetric OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is antisymmetric holds
b1 is SubAntisymmetric
;
by Th28;
end;

registration
cluster TrivOrthoRelStr -> non empty reflexive symmetric trivial strict Dneg SubSymmetric SubAntisymmetric ;
coherence
TrivOrthoRelStr is symmetric
by Th27;
end;

registration
cluster non empty antisymmetric symmetric strict SubSymmetric SubAntisymmetric OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is symmetric & b1 is antisymmetric & b1 is strict )
by Lemma33;
end;

definition
let c1 be non empty RelStr ;
canceled;
canceled;
attr a1 is Asymmetric means :Def18: :: OPOSET_1:def 18
the InternalRel of a1 is_asymmetric_in the carrier of a1;
end;

:: deftheorem Def16 OPOSET_1:def 16 :
canceled;

:: deftheorem Def17 OPOSET_1:def 17 :
canceled;

:: deftheorem Def18 defines Asymmetric OPOSET_1:def 18 :
for b1 being non empty RelStr holds
( b1 is Asymmetric iff the InternalRel of b1 is_asymmetric_in the carrier of b1 );

theorem Th29: :: OPOSET_1:29
canceled;

theorem Th30: :: OPOSET_1:30
for b1 being non empty RelStr st b1 is Asymmetric holds
b1 is asymmetric
proof end;

theorem Th31: :: OPOSET_1:31
TrivAsymOrthoRelStr is Asymmetric
proof end;

registration
cluster non empty Asymmetric -> non empty asymmetric OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is Asymmetric holds
b1 is asymmetric
;
by Th30;
end;

registration
cluster TrivAsymOrthoRelStr -> non empty asymmetric irreflexive strict SubIrreFlexive Asymmetric ;
coherence
TrivAsymOrthoRelStr is Asymmetric
by Th31;
end;

registration
cluster non empty asymmetric strict Asymmetric OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is Asymmetric & b1 is strict )
by Th31;
end;

definition
let c1 be non empty RelStr ;
attr a1 is SubTransitive means :Def19: :: OPOSET_1:def 19
the InternalRel of a1 is transitive Relation of the carrier of a1;
end;

:: deftheorem Def19 defines SubTransitive OPOSET_1:def 19 :
for b1 being non empty RelStr holds
( b1 is SubTransitive iff the InternalRel of b1 is transitive Relation of the carrier of b1 );

theorem Th32: :: OPOSET_1:32
for b1 being non empty RelStr st b1 is transitive holds
b1 is SubTransitive
proof end;

registration
cluster non empty transitive -> non empty SubTransitive OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is transitive holds
b1 is SubTransitive
;
by Th32;
end;

registration
cluster non empty reflexive transitive antisymmetric symmetric strict SubSymmetric SubAntisymmetric SubTransitive OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is reflexive & b1 is symmetric & b1 is antisymmetric & b1 is transitive & b1 is strict )
by Lemma33;
end;

theorem Th33: :: OPOSET_1:33
canceled;

theorem Th34: :: OPOSET_1:34
TrivAsymOrthoRelStr is transitive
proof end;

registration
cluster TrivAsymOrthoRelStr -> non empty transitive asymmetric irreflexive strict SubIrreFlexive Asymmetric SubTransitive ;
coherence
( TrivAsymOrthoRelStr is irreflexive & TrivAsymOrthoRelStr is Asymmetric & TrivAsymOrthoRelStr is transitive )
by Th34;
end;

registration
cluster non empty transitive asymmetric irreflexive strict SubIrreFlexive Asymmetric SubTransitive OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is irreflexive & b1 is Asymmetric & b1 is transitive & b1 is strict )
by Th25;
end;

theorem Th35: :: OPOSET_1:35
for b1 being non empty RelStr st b1 is SubSymmetric & b1 is SubTransitive holds
b1 is SubReFlexive
proof end;

theorem Th36: :: OPOSET_1:36
for b1 being non empty RelStr st b1 is SubIrreFlexive & b1 is SubTransitive holds
b1 is asymmetric
proof end;

theorem Th37: :: OPOSET_1:37
for b1 being non empty RelStr st b1 is asymmetric holds
b1 is SubIrreFlexive
proof end;

theorem Th38: :: OPOSET_1:38
for b1 being non empty RelStr st b1 is reflexive & b1 is SubSymmetric holds
b1 is symmetric
proof end;

registration
cluster non empty reflexive SubSymmetric -> non empty symmetric SubSymmetric OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is reflexive & b1 is SubSymmetric holds
b1 is symmetric
;
by Th38;
end;

theorem Th39: :: OPOSET_1:39
for b1 being non empty RelStr st b1 is reflexive & b1 is SubAntisymmetric holds
b1 is antisymmetric
proof end;

registration
cluster non empty reflexive SubAntisymmetric -> non empty antisymmetric SubAntisymmetric OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is reflexive & b1 is SubAntisymmetric holds
b1 is antisymmetric
;
by Th39;
end;

theorem Th40: :: OPOSET_1:40
for b1 being non empty RelStr st b1 is reflexive & b1 is SubTransitive holds
b1 is transitive
proof end;

registration
cluster non empty reflexive SubTransitive -> non empty transitive SubTransitive OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is reflexive & b1 is SubTransitive holds
b1 is transitive
;
by Th40;
end;

theorem Th41: :: OPOSET_1:41
for b1 being non empty RelStr st b1 is irreflexive & b1 is SubTransitive holds
b1 is transitive
proof end;

registration
cluster non empty irreflexive SubTransitive -> non empty transitive SubTransitive OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is irreflexive & b1 is SubTransitive holds
b1 is transitive
;
by Th41;
end;

theorem Th42: :: OPOSET_1:42
for b1 being non empty RelStr st b1 is irreflexive & b1 is asymmetric holds
b1 is Asymmetric
proof end;

registration
cluster non empty asymmetric irreflexive -> non empty asymmetric Asymmetric OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is irreflexive & b1 is asymmetric holds
b1 is Asymmetric
;
by Th42;
end;

definition
let c1 be non empty RelStr ;
canceled;
attr a1 is SubQuasiOrdered means :Def21: :: OPOSET_1:def 21
( a1 is SubReFlexive & a1 is SubTransitive );
end;

:: deftheorem Def20 OPOSET_1:def 20 :
canceled;

:: deftheorem Def21 defines SubQuasiOrdered OPOSET_1:def 21 :
for b1 being non empty RelStr holds
( b1 is SubQuasiOrdered iff ( b1 is SubReFlexive & b1 is SubTransitive ) );

notation
let c1 be non empty RelStr ;
synonym SubPreOrdered c1 for SubQuasiOrdered c1;
end;

definition
let c1 be non empty RelStr ;
attr a1 is QuasiOrdered means :Def22: :: OPOSET_1:def 22
( a1 is reflexive & a1 is transitive );
end;

:: deftheorem Def22 defines QuasiOrdered OPOSET_1:def 22 :
for b1 being non empty RelStr holds
( b1 is QuasiOrdered iff ( b1 is reflexive & b1 is transitive ) );

notation
let c1 be non empty RelStr ;
synonym PreOrdered c1 for QuasiOrdered c1;
end;

theorem Th43: :: OPOSET_1:43
for b1 being non empty RelStr st b1 is QuasiOrdered holds
b1 is SubQuasiOrdered
proof end;

registration
cluster non empty QuasiOrdered -> non empty SubQuasiOrdered OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is QuasiOrdered holds
b1 is SubQuasiOrdered
;
by Th43;
end;

registration
cluster TrivOrthoRelStr -> non empty reflexive symmetric trivial strict Dneg SubSymmetric SubAntisymmetric SubTransitive SubQuasiOrdered QuasiOrdered ;
coherence
TrivOrthoRelStr is QuasiOrdered
by Def22;
end;

definition
let c1 be non empty OrthoRelStr ;
attr a1 is QuasiPure means :Def23: :: OPOSET_1:def 23
( a1 is Dneg & a1 is QuasiOrdered );
end;

:: deftheorem Def23 defines QuasiPure OPOSET_1:def 23 :
for b1 being non empty OrthoRelStr holds
( b1 is QuasiPure iff ( b1 is Dneg & b1 is QuasiOrdered ) );

registration
cluster non empty strict Dneg SubQuasiOrdered QuasiOrdered QuasiPure OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is QuasiPure & b1 is Dneg & b1 is QuasiOrdered & b1 is strict )
proof end;
end;

registration
cluster TrivOrthoRelStr -> non empty reflexive symmetric trivial strict Dneg SubSymmetric SubAntisymmetric SubTransitive SubQuasiOrdered QuasiOrdered QuasiPure ;
coherence
TrivOrthoRelStr is QuasiPure
by Def23;
end;

definition
mode QuasiPureOrthoRelStr is non empty QuasiPure OrthoRelStr ;
end;

definition
let c1 be non empty OrthoRelStr ;
attr a1 is SubPartialOrdered means :Def24: :: OPOSET_1:def 24
( a1 is reflexive & a1 is SubAntisymmetric & a1 is SubTransitive );
end;

:: deftheorem Def24 defines SubPartialOrdered OPOSET_1:def 24 :
for b1 being non empty OrthoRelStr holds
( b1 is SubPartialOrdered iff ( b1 is reflexive & b1 is SubAntisymmetric & b1 is SubTransitive ) );

definition
let c1 be non empty OrthoRelStr ;
attr a1 is PartialOrdered means :Def25: :: OPOSET_1:def 25
( a1 is reflexive & a1 is antisymmetric & a1 is transitive );
end;

:: deftheorem Def25 defines PartialOrdered OPOSET_1:def 25 :
for b1 being non empty OrthoRelStr holds
( b1 is PartialOrdered iff ( b1 is reflexive & b1 is antisymmetric & b1 is transitive ) );

theorem Th44: :: OPOSET_1:44
for b1 being non empty OrthoRelStr holds
( b1 is SubPartialOrdered iff b1 is PartialOrdered )
proof end;

registration
cluster non empty SubPartialOrdered -> non empty PartialOrdered OrthoRelStr ;
coherence
for b1 being non empty OrthoRelStr st b1 is SubPartialOrdered holds
b1 is PartialOrdered
by Th44;
cluster non empty PartialOrdered -> non empty SubPartialOrdered OrthoRelStr ;
coherence
for b1 being non empty OrthoRelStr st b1 is PartialOrdered holds
b1 is SubPartialOrdered
by Th44;
end;

registration
cluster non empty PartialOrdered -> non empty reflexive transitive antisymmetric SubAntisymmetric SubTransitive OrthoRelStr ;
coherence
for b1 being non empty OrthoRelStr st b1 is PartialOrdered holds
( b1 is reflexive & b1 is antisymmetric & b1 is transitive )
by Def25;
cluster non empty reflexive transitive antisymmetric -> non empty SubPartialOrdered PartialOrdered OrthoRelStr ;
coherence
for b1 being non empty OrthoRelStr st b1 is reflexive & b1 is antisymmetric & b1 is transitive holds
b1 is PartialOrdered
by Def25;
end;

definition
let c1 be non empty OrthoRelStr ;
attr a1 is Pure means :Def26: :: OPOSET_1:def 26
( a1 is Dneg & a1 is PartialOrdered );
end;

:: deftheorem Def26 defines Pure OPOSET_1:def 26 :
for b1 being non empty OrthoRelStr holds
( b1 is Pure iff ( b1 is Dneg & b1 is PartialOrdered ) );

registration
cluster non empty reflexive transitive antisymmetric strict Dneg SubAntisymmetric SubTransitive SubPartialOrdered PartialOrdered Pure OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is Pure & b1 is Dneg & b1 is PartialOrdered & b1 is strict )
proof end;
end;

registration
cluster TrivOrthoRelStr -> non empty reflexive symmetric trivial strict Dneg SubSymmetric SubAntisymmetric SubTransitive SubQuasiOrdered QuasiOrdered QuasiPure SubPartialOrdered PartialOrdered Pure ;
coherence
TrivOrthoRelStr is Pure
by Def26;
end;

definition
mode PureOrthoRelStr is non empty Pure OrthoRelStr ;
end;

definition
let c1 be non empty OrthoRelStr ;
attr a1 is SubStrictPartialOrdered means :Def27: :: OPOSET_1:def 27
( a1 is asymmetric & a1 is SubTransitive );
end;

:: deftheorem Def27 defines SubStrictPartialOrdered OPOSET_1:def 27 :
for b1 being non empty OrthoRelStr holds
( b1 is SubStrictPartialOrdered iff ( b1 is asymmetric & b1 is SubTransitive ) );

definition
let c1 be non empty OrthoRelStr ;
attr a1 is StrictPartialOrdered means :Def28: :: OPOSET_1:def 28
( a1 is Asymmetric & a1 is transitive );
end;

:: deftheorem Def28 defines StrictPartialOrdered OPOSET_1:def 28 :
for b1 being non empty OrthoRelStr holds
( b1 is StrictPartialOrdered iff ( b1 is Asymmetric & b1 is transitive ) );

notation
let c1 be non empty OrthoRelStr ;
synonym StrictOrdered c1 for StrictPartialOrdered c1;
end;

theorem Th45: :: OPOSET_1:45
for b1 being non empty OrthoRelStr st b1 is StrictPartialOrdered holds
b1 is SubStrictPartialOrdered
proof end;

registration
cluster non empty StrictPartialOrdered -> non empty SubStrictPartialOrdered OrthoRelStr ;
coherence
for b1 being non empty OrthoRelStr st b1 is StrictPartialOrdered holds
b1 is SubStrictPartialOrdered
by Th45;
end;

theorem Th46: :: OPOSET_1:46
for b1 being non empty OrthoRelStr st b1 is SubStrictPartialOrdered holds
b1 is SubIrreFlexive
proof end;

registration
cluster non empty SubStrictPartialOrdered -> non empty SubIrreFlexive OrthoRelStr ;
coherence
for b1 being non empty OrthoRelStr st b1 is SubStrictPartialOrdered holds
b1 is SubIrreFlexive
by Th46;
end;

theorem Th47: :: OPOSET_1:47
for b1 being non empty OrthoRelStr st b1 is irreflexive & b1 is SubStrictPartialOrdered holds
b1 is StrictPartialOrdered
proof end;

registration
cluster non empty irreflexive SubStrictPartialOrdered -> non empty SubIrreFlexive SubStrictPartialOrdered StrictPartialOrdered OrthoRelStr ;
coherence
for b1 being non empty OrthoRelStr st b1 is irreflexive & b1 is SubStrictPartialOrdered holds
b1 is StrictPartialOrdered
by Th47;
end;

theorem Th48: :: OPOSET_1:48
for b1 being non empty OrthoRelStr st b1 is StrictPartialOrdered holds
b1 is irreflexive
proof end;

registration
cluster non empty StrictPartialOrdered -> non empty irreflexive SubIrreFlexive OrthoRelStr ;
coherence
for b1 being non empty OrthoRelStr st b1 is StrictPartialOrdered holds
b1 is irreflexive
by Th48;
end;

registration
cluster TrivAsymOrthoRelStr -> non empty transitive asymmetric irreflexive strict SubIrreFlexive Asymmetric SubTransitive SubStrictPartialOrdered StrictPartialOrdered ;
coherence
( TrivAsymOrthoRelStr is irreflexive & TrivAsymOrthoRelStr is StrictPartialOrdered )
by Def28;
end;

registration
cluster non empty irreflexive strict SubIrreFlexive SubStrictPartialOrdered StrictPartialOrdered OrthoRelStr ;
existence
ex b1 being non empty strict OrthoRelStr st
( b1 is irreflexive & b1 is StrictPartialOrdered )
proof end;
end;

theorem Th49: :: OPOSET_1:49
for b1 being non empty QuasiOrdered OrthoRelStr st b1 is SubAntisymmetric holds
b1 is PartialOrdered
proof end;

Lemma60: for b1 being non empty PartialOrdered OrthoRelStr holds b1 is Poset
;

registration
cluster non empty PartialOrdered -> non empty reflexive transitive antisymmetric SubAntisymmetric SubTransitive SubPartialOrdered PartialOrdered OrthoRelStr ;
correctness
coherence
for b1 being non empty OrthoRelStr st b1 is PartialOrdered holds
( b1 is reflexive & b1 is transitive & b1 is antisymmetric )
;
by Lemma60;
end;

definition
let c1 be non empty RelStr ;
let c2 be UnOp of the carrier of c1;
canceled;
canceled;
canceled;
attr a2 is Orderinvolutive means :Def32: :: OPOSET_1:def 32
ex b1 being Function of a1,a1 st
( b1 = a2 & b1 is dneg & b1 is antitone );
end;

:: deftheorem Def29 OPOSET_1:def 29 :
canceled;

:: deftheorem Def30 OPOSET_1:def 30 :
canceled;

:: deftheorem Def31 OPOSET_1:def 31 :
canceled;

:: deftheorem Def32 defines Orderinvolutive OPOSET_1:def 32 :
for b1 being non empty RelStr
for b2 being UnOp of the carrier of b1 holds
( b2 is Orderinvolutive iff ex b3 being Function of b1,b1 st
( b3 = b2 & b3 is dneg & b3 is antitone ) );

definition
let c1 be non empty OrthoRelStr ;
attr a1 is OrderInvolutive means :Def33: :: OPOSET_1:def 33
ex b1 being Function of a1,a1 st
( b1 = the Compl of a1 & b1 is Orderinvolutive );
end;

:: deftheorem Def33 defines OrderInvolutive OPOSET_1:def 33 :
for b1 being non empty OrthoRelStr holds
( b1 is OrderInvolutive iff ex b2 being Function of b1,b1 st
( b2 = the Compl of b1 & b2 is Orderinvolutive ) );

theorem Th50: :: OPOSET_1:50
canceled;

theorem Th51: :: OPOSET_1:51
the Compl of TrivOrthoRelStr is Orderinvolutive
proof end;

registration
cluster TrivOrthoRelStr -> non empty reflexive symmetric trivial strict Dneg SubSymmetric SubAntisymmetric SubTransitive SubQuasiOrdered QuasiOrdered QuasiPure SubPartialOrdered PartialOrdered Pure OrderInvolutive ;
coherence
TrivOrthoRelStr is OrderInvolutive
by Def33, Th51;
end;

registration
cluster non empty reflexive transitive antisymmetric SubAntisymmetric SubTransitive SubPartialOrdered PartialOrdered Pure OrderInvolutive OrthoRelStr ;
existence
ex b1 being non empty OrthoRelStr st
( b1 is OrderInvolutive & b1 is Pure & b1 is PartialOrdered )
proof end;
end;

definition
mode PreOrthoPoset is non empty PartialOrdered Pure OrderInvolutive OrthoRelStr ;
end;

definition
let c1 be non empty RelStr ;
let c2 be UnOp of the carrier of c1;
pred c2 QuasiOrthoComplement_on c1 means :Def34: :: OPOSET_1:def 34
( a2 is Orderinvolutive & ( for b1 being Element of a1 holds
( ex_sup_of {b1,(a2 . b1)},a1 & ex_inf_of {b1,(a2 . b1)},a1 ) ) );
end;

:: deftheorem Def34 defines QuasiOrthoComplement_on OPOSET_1:def 34 :
for b1 being non empty RelStr
for b2 being UnOp of the carrier of b1 holds
( b2 QuasiOrthoComplement_on b1 iff ( b2 is Orderinvolutive & ( for b3 being Element of b1 holds
( ex_sup_of {b3,(b2 . b3)},b1 & ex_inf_of {b3,(b2 . b3)},b1 ) ) ) );

definition
let c1 be non empty OrthoRelStr ;
attr a1 is QuasiOrthocomplemented means :Def35: :: OPOSET_1:def 35
ex b1 being Function of a1,a1 st
( b1 = the Compl of a1 & b1 QuasiOrthoComplement_on a1 );
end;

:: deftheorem Def35 defines QuasiOrthocomplemented OPOSET_1:def 35 :
for b1 being non empty OrthoRelStr holds
( b1 is QuasiOrthocomplemented iff ex b2 being Function of b1,b1 st
( b2 = the Compl of b1 & b2 QuasiOrthoComplement_on b1 ) );

theorem Th52: :: OPOSET_1:52
TrivOrthoRelStr is QuasiOrthocomplemented
proof end;

definition
let c1 be non empty RelStr ;
let c2 be UnOp of the carrier of c1;
pred c2 OrthoComplement_on c1 means :Def36: :: OPOSET_1:def 36
( a2 is Orderinvolutive & ( for b1 being Element of a1 holds
( ex_sup_of {b1,(a2 . b1)},a1 & ex_inf_of {b1,(a2 . b1)},a1 & "\/" {b1,(a2 . b1)},a1 is_maximum_of the carrier of a1 & "/\" {b1,(a2 . b1)},a1 is_minimum_of the carrier of a1 ) ) );
end;

:: deftheorem Def36 defines OrthoComplement_on OPOSET_1:def 36 :
for b1 being non empty RelStr
for b2 being UnOp of the carrier of b1 holds
( b2 OrthoComplement_on b1 iff ( b2 is Orderinvolutive & ( for b3 being Element of b1 holds
( ex_sup_of {b3,(b2 . b3)},b1 & ex_inf_of {b3,(b2 . b3)},b1 & "\/" {b3,(b2 . b3)},b1 is_maximum_of the carrier of b1 & "/\" {b3,(b2 . b3)},b1 is_minimum_of the carrier of b1 ) ) ) );

definition
let c1 be non empty OrthoRelStr ;
attr a1 is Orthocomplemented means :Def37: :: OPOSET_1:def 37
ex b1 being Function of a1,a1 st
( b1 = the Compl of a1 & b1 OrthoComplement_on a1 );
end;

:: deftheorem Def37 defines Orthocomplemented OPOSET_1:def 37 :
for b1 being non empty OrthoRelStr holds
( b1 is Orthocomplemented iff ex b2 being Function of b1,b1 st
( b2 = the Compl of b1 & b2 OrthoComplement_on b1 ) );

theorem Th53: :: OPOSET_1:53
for b1 being non empty OrthoRelStr
for b2 being UnOp of the carrier of b1 st b2 OrthoComplement_on b1 holds
b2 QuasiOrthoComplement_on b1
proof end;

theorem Th54: :: OPOSET_1:54
TrivOrthoRelStr is Orthocomplemented
proof end;

registration
cluster TrivOrthoRelStr -> non empty reflexive symmetric trivial strict Dneg SubSymmetric SubAntisymmetric SubTransitive SubQuasiOrdered QuasiOrdered QuasiPure SubPartialOrdered PartialOrdered Pure OrderInvolutive QuasiOrthocomplemented Orthocomplemented ;
coherence
( TrivOrthoRelStr is QuasiOrthocomplemented & TrivOrthoRelStr is Orthocomplemented )
by Th52, Th54;
end;

registration
cluster non empty reflexive transitive antisymmetric SubAntisymmetric SubTransitive SubPartialOrdered PartialOrdered QuasiOrthocomplemented Orthocomplemented OrthoRelStr ;
correctness
existence
ex b1 being non empty OrthoRelStr st
( b1 is Orthocomplemented & b1 is QuasiOrthocomplemented & b1 is PartialOrdered )
;
proof end;
end;

definition
mode QuasiOrthoPoset is non empty PartialOrdered QuasiOrthocomplemented OrthoRelStr ;
mode OrthoPoset is non empty PartialOrdered Orthocomplemented OrthoRelStr ;
end;