:: Basic Notions and Properties of Orthoposets :: by Markus Moschner :: :: Received February 11, 2003 :: Copyright (c) 2003-2012 Association of Mizar Users begin :: Some basic definitions and theorems for later examples; theorem :: OPOSET_1:1 for L being non empty reflexive antisymmetric RelStr for x, y being Element of L st x <= y holds ( sup {x,y} = y & inf {x,y} = x ) proofend; :: for various types of relations needed for Posets :: Some existence conditions on non-empty relations registration let X be set ; cluster Relation-like irreflexive asymmetric transitive for Element of K19(([#] (X,X))); existence ex b1 being Relation of X st ( b1 is irreflexive & b1 is asymmetric & b1 is transitive ) proofend; end; registration let X be non empty set ; let R be Relation of X; let C be UnOp of X; cluster OrthoRelStr(# X,R,C #) -> non empty ; coherence not OrthoRelStr(# X,R,C #) is empty ; end; registration cluster non empty strict for OrthoRelStr ; existence ex b1 being OrthoRelStr st ( not b1 is empty & b1 is strict ) proofend; end; :: Double negation property of the internal Complement registration let O be set ; cluster Relation-like Function-like V14(O) V18(O,O) involutive for Element of K19(([#] (O,O))); existence ex b1 being Function of O,O st b1 is involutive proofend; end; :: Small example structures definition func TrivOrthoRelStr -> strict OrthoRelStr equals :Def1: :: OPOSET_1:def 1 OrthoRelStr(# 1,(id 1),op1 #); coherence OrthoRelStr(# 1,(id 1),op1 #) is strict OrthoRelStr ; end; :: deftheorem Def1 defines TrivOrthoRelStr OPOSET_1:def_1_:_ TrivOrthoRelStr = OrthoRelStr(# 1,(id 1),op1 #); notation synonym TrivPoset for TrivOrthoRelStr ; end; registration cluster TrivOrthoRelStr -> 1 -element strict ; coherence TrivOrthoRelStr is 1 -element proofend; end; definition func TrivAsymOrthoRelStr -> strict OrthoRelStr equals :: OPOSET_1:def 2 OrthoRelStr(# 1,({} (1,1)),op1 #); coherence OrthoRelStr(# 1,({} (1,1)),op1 #) is strict OrthoRelStr ; end; :: deftheorem defines TrivAsymOrthoRelStr OPOSET_1:def_2_:_ TrivAsymOrthoRelStr = OrthoRelStr(# 1,({} (1,1)),op1 #); registration cluster TrivAsymOrthoRelStr -> non empty strict ; coherence not TrivAsymOrthoRelStr is empty ; end; definition let O be non empty OrthoRelStr ; attrO is Dneg means :Def3: :: OPOSET_1:def 3 ex f being Function of O,O st ( f = the Compl of O & f is V252() ); end; :: deftheorem Def3 defines Dneg OPOSET_1:def_3_:_ for O being non empty OrthoRelStr holds ( O is Dneg iff ex f being Function of O,O st ( f = the Compl of O & f is V252() ) ); registration cluster TrivOrthoRelStr -> strict Dneg ; coherence TrivOrthoRelStr is Dneg by Def3; end; registration cluster non empty Dneg for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st b1 is Dneg by Def1; end; :: InternalRel based properties definition let O be non empty RelStr ; attrO is SubReFlexive means :Def4: :: OPOSET_1:def 4 the InternalRel of O is reflexive ; end; :: deftheorem Def4 defines SubReFlexive OPOSET_1:def_4_:_ for O being non empty RelStr holds ( O is SubReFlexive iff the InternalRel of O is reflexive ); theorem :: OPOSET_1:2 for O being non empty RelStr st O is reflexive holds O is SubReFlexive proofend; theorem Th3: :: OPOSET_1:3 TrivOrthoRelStr is reflexive proofend; registration cluster TrivOrthoRelStr -> reflexive strict ; coherence TrivOrthoRelStr is reflexive by Th3; end; registration cluster non empty reflexive strict for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is reflexive & b1 is strict ) by Th3; end; definition let O be non empty RelStr ; redefine attr O is irreflexive means :Def5: :: OPOSET_1:def 5 the InternalRel of O is irreflexive ; compatibility ( O is irreflexive iff the InternalRel of O is irreflexive ) proofend; redefine attr O is irreflexive means :Def6: :: OPOSET_1:def 6 the InternalRel of O is_irreflexive_in the carrier of O; compatibility ( O is irreflexive iff the InternalRel of O is_irreflexive_in the carrier of O ) proofend; end; :: deftheorem Def5 defines irreflexive OPOSET_1:def_5_:_ for O being non empty RelStr holds ( O is irreflexive iff the InternalRel of O is irreflexive ); :: deftheorem Def6 defines irreflexive OPOSET_1:def_6_:_ for O being non empty RelStr holds ( O is irreflexive iff the InternalRel of O is_irreflexive_in the carrier of O ); theorem Th4: :: OPOSET_1:4 TrivAsymOrthoRelStr is irreflexive proofend; registration cluster TrivAsymOrthoRelStr -> irreflexive strict ; coherence TrivAsymOrthoRelStr is irreflexive by Th4; end; registration cluster non empty irreflexive strict for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is irreflexive & b1 is strict ) by Th4; end; :: Symmetry definition let O be non empty RelStr ; redefine attr O is symmetric means :Def7: :: OPOSET_1:def 7 the InternalRel of O is symmetric Relation of the carrier of O; compatibility ( O is symmetric iff the InternalRel of O is symmetric Relation of the carrier of O ) proofend; end; :: deftheorem Def7 defines symmetric OPOSET_1:def_7_:_ for O being non empty RelStr holds ( O is symmetric iff the InternalRel of O is symmetric Relation of the carrier of O ); theorem Th5: :: OPOSET_1:5 TrivOrthoRelStr is symmetric by PARTIT_2:23, NECKLACE:def_3; registration cluster non empty symmetric strict for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is symmetric & b1 is strict ) by Th5; end; :: Antisymmetry definition let O be non empty RelStr ; redefine attr O is antisymmetric means :: OPOSET_1:def 8 the InternalRel of O is antisymmetric Relation of the carrier of O; compatibility ( O is antisymmetric iff the InternalRel of O is antisymmetric Relation of the carrier of O ) proofend; end; :: deftheorem defines antisymmetric OPOSET_1:def_8_:_ for O being non empty RelStr holds ( O is antisymmetric iff the InternalRel of O is antisymmetric Relation of the carrier of O ); Lm1: TrivOrthoRelStr is antisymmetric ; registration cluster TrivOrthoRelStr -> symmetric strict ; coherence TrivOrthoRelStr is symmetric by PARTIT_2:23, NECKLACE:def_3; end; registration cluster non empty antisymmetric symmetric strict for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is symmetric & b1 is antisymmetric & b1 is strict ) by Lm1; end; :: Asymmetry definition let O be non empty RelStr ; redefine attr O is asymmetric means :Def9: :: OPOSET_1:def 9 the InternalRel of O is_asymmetric_in the carrier of O; compatibility ( O is asymmetric iff the InternalRel of O is_asymmetric_in the carrier of O ) proofend; end; :: deftheorem Def9 defines asymmetric OPOSET_1:def_9_:_ for O being non empty RelStr holds ( O is asymmetric iff the InternalRel of O is_asymmetric_in the carrier of O ); theorem Th6: :: OPOSET_1:6 TrivAsymOrthoRelStr is asymmetric by PARTIT_2:28, Def9; registration cluster TrivAsymOrthoRelStr -> asymmetric strict ; coherence TrivAsymOrthoRelStr is asymmetric by PARTIT_2:28, Def9; end; registration cluster non empty asymmetric strict for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is asymmetric & b1 is strict ) by Th6; end; :: Transitivity definition let O be non empty RelStr ; redefine attr O is transitive means :Def10: :: OPOSET_1:def 10 the InternalRel of O is transitive Relation of the carrier of O; compatibility ( O is transitive iff the InternalRel of O is transitive Relation of the carrier of O ) proofend; end; :: deftheorem Def10 defines transitive OPOSET_1:def_10_:_ for O being non empty RelStr holds ( O is transitive iff the InternalRel of O is transitive Relation of the carrier of O ); registration cluster non empty reflexive transitive antisymmetric symmetric strict for 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 Lm1; end; theorem :: OPOSET_1:7 TrivAsymOrthoRelStr is transitive by PARTIT_2:26, ORDERS_2:def_3; registration cluster TrivAsymOrthoRelStr -> transitive asymmetric irreflexive strict ; coherence ( TrivAsymOrthoRelStr is irreflexive & TrivAsymOrthoRelStr is asymmetric & TrivAsymOrthoRelStr is transitive ) by PARTIT_2:26, ORDERS_2:def_3; end; registration cluster non empty transitive asymmetric irreflexive strict for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is irreflexive & b1 is asymmetric & b1 is transitive & b1 is strict ) by Th4; end; theorem :: OPOSET_1:8 for O being non empty RelStr st O is symmetric & O is transitive holds O is SubReFlexive proofend; theorem :: OPOSET_1:9 for O being non empty RelStr st O is irreflexive & O is transitive holds O is asymmetric proofend; theorem Th10: :: OPOSET_1:10 for O being non empty RelStr st O is asymmetric holds O is irreflexive proofend; begin :: Quasiorder (Preorder) definition let O be non empty RelStr ; attrO is SubQuasiOrdered means :Def11: :: OPOSET_1:def 11 ( O is SubReFlexive & O is transitive ); end; :: deftheorem Def11 defines SubQuasiOrdered OPOSET_1:def_11_:_ for O being non empty RelStr holds ( O is SubQuasiOrdered iff ( O is SubReFlexive & O is transitive ) ); notation let O be non empty RelStr ; synonym SubPreOrdered O for SubQuasiOrdered ; end; definition let O be non empty RelStr ; attrO is QuasiOrdered means :Def12: :: OPOSET_1:def 12 ( O is reflexive & O is transitive ); end; :: deftheorem Def12 defines QuasiOrdered OPOSET_1:def_12_:_ for O being non empty RelStr holds ( O is QuasiOrdered iff ( O is reflexive & O is transitive ) ); notation let O be non empty RelStr ; synonym PreOrdered O for QuasiOrdered ; end; theorem Th11: :: OPOSET_1:11 for O being non empty RelStr st O is QuasiOrdered holds O is SubQuasiOrdered proofend; registration cluster non empty QuasiOrdered -> non empty SubQuasiOrdered for OrthoRelStr ; correctness coherence for b1 being non empty OrthoRelStr st b1 is QuasiOrdered holds b1 is SubQuasiOrdered ; by Th11; end; registration cluster TrivOrthoRelStr -> strict QuasiOrdered ; coherence TrivOrthoRelStr is QuasiOrdered by Def12; end; :: QuasiPure means complementation-order-like combination of properties definition let O be non empty OrthoRelStr ; attrO is QuasiPure means :Def13: :: OPOSET_1:def 13 ( O is Dneg & O is QuasiOrdered ); end; :: deftheorem Def13 defines QuasiPure OPOSET_1:def_13_:_ for O being non empty OrthoRelStr holds ( O is QuasiPure iff ( O is Dneg & O is QuasiOrdered ) ); registration cluster non empty strict Dneg QuasiOrdered QuasiPure for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is QuasiPure & b1 is Dneg & b1 is QuasiOrdered & b1 is strict ) proofend; end; registration cluster TrivOrthoRelStr -> strict QuasiPure ; coherence TrivOrthoRelStr is QuasiPure by Def13; end; definition mode QuasiPureOrthoRelStr is non empty QuasiPure OrthoRelStr ; end; :: Partial Order ---> Poset definition let O be non empty OrthoRelStr ; attrO is PartialOrdered means :Def14: :: OPOSET_1:def 14 ( O is reflexive & O is antisymmetric & O is transitive ); end; :: deftheorem Def14 defines PartialOrdered OPOSET_1:def_14_:_ for O being non empty OrthoRelStr holds ( O is PartialOrdered iff ( O is reflexive & O is antisymmetric & O is transitive ) ); registration cluster non empty PartialOrdered -> non empty reflexive transitive antisymmetric for OrthoRelStr ; coherence for b1 being non empty OrthoRelStr st b1 is PartialOrdered holds ( b1 is reflexive & b1 is antisymmetric & b1 is transitive ) by Def14; cluster non empty reflexive transitive antisymmetric -> non empty PartialOrdered for OrthoRelStr ; coherence for b1 being non empty OrthoRelStr st b1 is reflexive & b1 is antisymmetric & b1 is transitive holds b1 is PartialOrdered by Def14; end; :: Pureness for partial orders definition let O be non empty OrthoRelStr ; attrO is Pure means :Def15: :: OPOSET_1:def 15 ( O is Dneg & O is PartialOrdered ); end; :: deftheorem Def15 defines Pure OPOSET_1:def_15_:_ for O being non empty OrthoRelStr holds ( O is Pure iff ( O is Dneg & O is PartialOrdered ) ); registration cluster non empty strict Dneg PartialOrdered Pure for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is Pure & b1 is Dneg & b1 is PartialOrdered & b1 is strict ) proofend; end; registration cluster TrivOrthoRelStr -> strict Pure ; coherence TrivOrthoRelStr is Pure by Def15; end; definition mode PureOrthoRelStr is non empty Pure OrthoRelStr ; end; :: Strict Poset definition let O be non empty OrthoRelStr ; attrO is StrictPartialOrdered means :Def16: :: OPOSET_1:def 16 ( O is asymmetric & O is transitive ); end; :: deftheorem Def16 defines StrictPartialOrdered OPOSET_1:def_16_:_ for O being non empty OrthoRelStr holds ( O is StrictPartialOrdered iff ( O is asymmetric & O is transitive ) ); notation let O be non empty OrthoRelStr ; synonym StrictOrdered O for StrictPartialOrdered ; end; theorem Th12: :: OPOSET_1:12 for O being non empty OrthoRelStr st O is StrictPartialOrdered holds O is irreflexive proofend; registration cluster non empty StrictPartialOrdered -> non empty irreflexive for OrthoRelStr ; coherence for b1 being non empty OrthoRelStr st b1 is StrictPartialOrdered holds b1 is irreflexive by Th12; end; registration cluster non empty StrictPartialOrdered -> non empty irreflexive for OrthoRelStr ; coherence for b1 being non empty OrthoRelStr st b1 is StrictPartialOrdered holds b1 is irreflexive ; end; registration cluster TrivAsymOrthoRelStr -> irreflexive strict StrictPartialOrdered ; coherence ( TrivAsymOrthoRelStr is irreflexive & TrivAsymOrthoRelStr is StrictPartialOrdered ) by Def16; end; registration cluster non empty irreflexive strict StrictPartialOrdered for OrthoRelStr ; existence ex b1 being non empty strict OrthoRelStr st ( b1 is irreflexive & b1 is StrictPartialOrdered ) proofend; end; theorem :: OPOSET_1:13 for QO being non empty QuasiOrdered OrthoRelStr st QO is antisymmetric holds QO is PartialOrdered proofend; registration cluster non empty PartialOrdered -> non empty reflexive transitive antisymmetric for OrthoRelStr ; correctness coherence for b1 being non empty OrthoRelStr st b1 is PartialOrdered holds ( b1 is reflexive & b1 is transitive & b1 is antisymmetric ); ; end; definition let PO be non empty RelStr ; let f be UnOp of the carrier of PO; attrf is Orderinvolutive means :Def17: :: OPOSET_1:def 17 ( f is V252() & f is antitone ); end; :: deftheorem Def17 defines Orderinvolutive OPOSET_1:def_17_:_ for PO being non empty RelStr for f being UnOp of the carrier of PO holds ( f is Orderinvolutive iff ( f is V252() & f is antitone ) ); definition let PO be non empty OrthoRelStr ; attrPO is OrderInvolutive means :Def18: :: OPOSET_1:def 18 the Compl of PO is Orderinvolutive ; end; :: deftheorem Def18 defines OrderInvolutive OPOSET_1:def_18_:_ for PO being non empty OrthoRelStr holds ( PO is OrderInvolutive iff the Compl of PO is Orderinvolutive ); theorem Th14: :: OPOSET_1:14 the Compl of TrivOrthoRelStr is Orderinvolutive proofend; registration cluster TrivOrthoRelStr -> strict OrderInvolutive ; coherence TrivOrthoRelStr is OrderInvolutive by Def18, Th14; end; registration cluster non empty PartialOrdered Pure OrderInvolutive for OrthoRelStr ; existence ex b1 being non empty OrthoRelStr st ( b1 is OrderInvolutive & b1 is Pure & b1 is PartialOrdered ) proofend; end; definition mode PreOrthoPoset is non empty PartialOrdered Pure OrderInvolutive OrthoRelStr ; end; definition let PO be non empty RelStr ; let f be UnOp of the carrier of PO; predf QuasiOrthoComplement_on PO means :Def19: :: OPOSET_1:def 19 ( f is Orderinvolutive & ( for y being Element of PO holds ( ex_sup_of {y,(f . y)},PO & ex_inf_of {y,(f . y)},PO ) ) ); end; :: deftheorem Def19 defines QuasiOrthoComplement_on OPOSET_1:def_19_:_ for PO being non empty RelStr for f being UnOp of the carrier of PO holds ( f QuasiOrthoComplement_on PO iff ( f is Orderinvolutive & ( for y being Element of PO holds ( ex_sup_of {y,(f . y)},PO & ex_inf_of {y,(f . y)},PO ) ) ) ); definition let PO be non empty OrthoRelStr ; attrPO is QuasiOrthocomplemented means :Def20: :: OPOSET_1:def 20 ex f being Function of PO,PO st ( f = the Compl of PO & f QuasiOrthoComplement_on PO ); end; :: deftheorem Def20 defines QuasiOrthocomplemented OPOSET_1:def_20_:_ for PO being non empty OrthoRelStr holds ( PO is QuasiOrthocomplemented iff ex f being Function of PO,PO st ( f = the Compl of PO & f QuasiOrthoComplement_on PO ) ); Lm2: id {{}} = {[{},{}]} by SYSREL:13; theorem Th15: :: OPOSET_1:15 TrivOrthoRelStr is QuasiOrthocomplemented proofend; definition let PO be non empty RelStr ; let f be UnOp of the carrier of PO; predf OrthoComplement_on PO means :Def21: :: OPOSET_1:def 21 ( f is Orderinvolutive & ( for y being Element of PO holds ( ex_sup_of {y,(f . y)},PO & ex_inf_of {y,(f . y)},PO & "\/" ({y,(f . y)},PO) is_maximum_of the carrier of PO & "/\" ({y,(f . y)},PO) is_minimum_of the carrier of PO ) ) ); end; :: deftheorem Def21 defines OrthoComplement_on OPOSET_1:def_21_:_ for PO being non empty RelStr for f being UnOp of the carrier of PO holds ( f OrthoComplement_on PO iff ( f is Orderinvolutive & ( for y being Element of PO holds ( ex_sup_of {y,(f . y)},PO & ex_inf_of {y,(f . y)},PO & "\/" ({y,(f . y)},PO) is_maximum_of the carrier of PO & "/\" ({y,(f . y)},PO) is_minimum_of the carrier of PO ) ) ) ); definition let PO be non empty OrthoRelStr ; attrPO is Orthocomplemented means :Def22: :: OPOSET_1:def 22 ex f being Function of PO,PO st ( f = the Compl of PO & f OrthoComplement_on PO ); end; :: deftheorem Def22 defines Orthocomplemented OPOSET_1:def_22_:_ for PO being non empty OrthoRelStr holds ( PO is Orthocomplemented iff ex f being Function of PO,PO st ( f = the Compl of PO & f OrthoComplement_on PO ) ); theorem :: OPOSET_1:16 for PO being non empty OrthoRelStr for f being UnOp of the carrier of PO st f OrthoComplement_on PO holds f QuasiOrthoComplement_on PO proofend; :: PartialOrdered (non empty OrthoRelStr) theorem Th17: :: OPOSET_1:17 TrivOrthoRelStr is Orthocomplemented proofend; registration cluster TrivOrthoRelStr -> strict QuasiOrthocomplemented Orthocomplemented ; coherence ( TrivOrthoRelStr is QuasiOrthocomplemented & TrivOrthoRelStr is Orthocomplemented ) by Th15, Th17; end; registration cluster non empty PartialOrdered QuasiOrthocomplemented Orthocomplemented for OrthoRelStr ; correctness existence ex b1 being non empty OrthoRelStr st ( b1 is Orthocomplemented & b1 is QuasiOrthocomplemented & b1 is PartialOrdered ); proofend; end; definition mode QuasiOrthoPoset is non empty PartialOrdered QuasiOrthocomplemented OrthoRelStr ; mode OrthoPoset is non empty PartialOrdered Orthocomplemented OrthoRelStr ; end;