Metamath Proof Explorer


Theorem omllaw

Description: The orthomodular law. (Contributed by NM, 18-Sep-2011)

Ref Expression
Hypotheses omllaw.b
|- B = ( Base ` K )
omllaw.l
|- .<_ = ( le ` K )
omllaw.j
|- .\/ = ( join ` K )
omllaw.m
|- ./\ = ( meet ` K )
omllaw.o
|- ._|_ = ( oc ` K )
Assertion omllaw
|- ( ( K e. OML /\ X e. B /\ Y e. B ) -> ( X .<_ Y -> Y = ( X .\/ ( Y ./\ ( ._|_ ` X ) ) ) ) )

Proof

Step Hyp Ref Expression
1 omllaw.b
 |-  B = ( Base ` K )
2 omllaw.l
 |-  .<_ = ( le ` K )
3 omllaw.j
 |-  .\/ = ( join ` K )
4 omllaw.m
 |-  ./\ = ( meet ` K )
5 omllaw.o
 |-  ._|_ = ( oc ` K )
6 1 2 3 4 5 isoml
 |-  ( K e. OML <-> ( K e. OL /\ A. x e. B A. y e. B ( x .<_ y -> y = ( x .\/ ( y ./\ ( ._|_ ` x ) ) ) ) ) )
7 6 simprbi
 |-  ( K e. OML -> A. x e. B A. y e. B ( x .<_ y -> y = ( x .\/ ( y ./\ ( ._|_ ` x ) ) ) ) )
8 breq1
 |-  ( x = X -> ( x .<_ y <-> X .<_ y ) )
9 id
 |-  ( x = X -> x = X )
10 fveq2
 |-  ( x = X -> ( ._|_ ` x ) = ( ._|_ ` X ) )
11 10 oveq2d
 |-  ( x = X -> ( y ./\ ( ._|_ ` x ) ) = ( y ./\ ( ._|_ ` X ) ) )
12 9 11 oveq12d
 |-  ( x = X -> ( x .\/ ( y ./\ ( ._|_ ` x ) ) ) = ( X .\/ ( y ./\ ( ._|_ ` X ) ) ) )
13 12 eqeq2d
 |-  ( x = X -> ( y = ( x .\/ ( y ./\ ( ._|_ ` x ) ) ) <-> y = ( X .\/ ( y ./\ ( ._|_ ` X ) ) ) ) )
14 8 13 imbi12d
 |-  ( x = X -> ( ( x .<_ y -> y = ( x .\/ ( y ./\ ( ._|_ ` x ) ) ) ) <-> ( X .<_ y -> y = ( X .\/ ( y ./\ ( ._|_ ` X ) ) ) ) ) )
15 breq2
 |-  ( y = Y -> ( X .<_ y <-> X .<_ Y ) )
16 id
 |-  ( y = Y -> y = Y )
17 oveq1
 |-  ( y = Y -> ( y ./\ ( ._|_ ` X ) ) = ( Y ./\ ( ._|_ ` X ) ) )
18 17 oveq2d
 |-  ( y = Y -> ( X .\/ ( y ./\ ( ._|_ ` X ) ) ) = ( X .\/ ( Y ./\ ( ._|_ ` X ) ) ) )
19 16 18 eqeq12d
 |-  ( y = Y -> ( y = ( X .\/ ( y ./\ ( ._|_ ` X ) ) ) <-> Y = ( X .\/ ( Y ./\ ( ._|_ ` X ) ) ) ) )
20 15 19 imbi12d
 |-  ( y = Y -> ( ( X .<_ y -> y = ( X .\/ ( y ./\ ( ._|_ ` X ) ) ) ) <-> ( X .<_ Y -> Y = ( X .\/ ( Y ./\ ( ._|_ ` X ) ) ) ) ) )
21 14 20 rspc2v
 |-  ( ( X e. B /\ Y e. B ) -> ( A. x e. B A. y e. B ( x .<_ y -> y = ( x .\/ ( y ./\ ( ._|_ ` x ) ) ) ) -> ( X .<_ Y -> Y = ( X .\/ ( Y ./\ ( ._|_ ` X ) ) ) ) ) )
22 7 21 syl5com
 |-  ( K e. OML -> ( ( X e. B /\ Y e. B ) -> ( X .<_ Y -> Y = ( X .\/ ( Y ./\ ( ._|_ ` X ) ) ) ) ) )
23 22 3impib
 |-  ( ( K e. OML /\ X e. B /\ Y e. B ) -> ( X .<_ Y -> Y = ( X .\/ ( Y ./\ ( ._|_ ` X ) ) ) ) )