Metamath Proof Explorer


Theorem shlub

Description: Hilbert lattice join is the least upper bound (among Hilbert lattice elements) of two subspaces. (Contributed by NM, 15-Jun-2004) (New usage is discouraged.)

Ref Expression
Assertion shlub ( ( 𝐴S𝐵S𝐶C ) → ( ( 𝐴𝐶𝐵𝐶 ) ↔ ( 𝐴 𝐵 ) ⊆ 𝐶 ) )

Proof

Step Hyp Ref Expression
1 unss ( ( 𝐴𝐶𝐵𝐶 ) ↔ ( 𝐴𝐵 ) ⊆ 𝐶 )
2 simp1 ( ( 𝐴S𝐵S𝐶C ) → 𝐴S )
3 shss ( 𝐴S𝐴 ⊆ ℋ )
4 2 3 syl ( ( 𝐴S𝐵S𝐶C ) → 𝐴 ⊆ ℋ )
5 simp2 ( ( 𝐴S𝐵S𝐶C ) → 𝐵S )
6 shss ( 𝐵S𝐵 ⊆ ℋ )
7 5 6 syl ( ( 𝐴S𝐵S𝐶C ) → 𝐵 ⊆ ℋ )
8 4 7 unssd ( ( 𝐴S𝐵S𝐶C ) → ( 𝐴𝐵 ) ⊆ ℋ )
9 chss ( 𝐶C𝐶 ⊆ ℋ )
10 9 3ad2ant3 ( ( 𝐴S𝐵S𝐶C ) → 𝐶 ⊆ ℋ )
11 occon2 ( ( ( 𝐴𝐵 ) ⊆ ℋ ∧ 𝐶 ⊆ ℋ ) → ( ( 𝐴𝐵 ) ⊆ 𝐶 → ( ⊥ ‘ ( ⊥ ‘ ( 𝐴𝐵 ) ) ) ⊆ ( ⊥ ‘ ( ⊥ ‘ 𝐶 ) ) ) )
12 8 10 11 syl2anc ( ( 𝐴S𝐵S𝐶C ) → ( ( 𝐴𝐵 ) ⊆ 𝐶 → ( ⊥ ‘ ( ⊥ ‘ ( 𝐴𝐵 ) ) ) ⊆ ( ⊥ ‘ ( ⊥ ‘ 𝐶 ) ) ) )
13 1 12 syl5bi ( ( 𝐴S𝐵S𝐶C ) → ( ( 𝐴𝐶𝐵𝐶 ) → ( ⊥ ‘ ( ⊥ ‘ ( 𝐴𝐵 ) ) ) ⊆ ( ⊥ ‘ ( ⊥ ‘ 𝐶 ) ) ) )
14 shjval ( ( 𝐴S𝐵S ) → ( 𝐴 𝐵 ) = ( ⊥ ‘ ( ⊥ ‘ ( 𝐴𝐵 ) ) ) )
15 2 5 14 syl2anc ( ( 𝐴S𝐵S𝐶C ) → ( 𝐴 𝐵 ) = ( ⊥ ‘ ( ⊥ ‘ ( 𝐴𝐵 ) ) ) )
16 ococ ( 𝐶C → ( ⊥ ‘ ( ⊥ ‘ 𝐶 ) ) = 𝐶 )
17 16 3ad2ant3 ( ( 𝐴S𝐵S𝐶C ) → ( ⊥ ‘ ( ⊥ ‘ 𝐶 ) ) = 𝐶 )
18 17 eqcomd ( ( 𝐴S𝐵S𝐶C ) → 𝐶 = ( ⊥ ‘ ( ⊥ ‘ 𝐶 ) ) )
19 15 18 sseq12d ( ( 𝐴S𝐵S𝐶C ) → ( ( 𝐴 𝐵 ) ⊆ 𝐶 ↔ ( ⊥ ‘ ( ⊥ ‘ ( 𝐴𝐵 ) ) ) ⊆ ( ⊥ ‘ ( ⊥ ‘ 𝐶 ) ) ) )
20 13 19 sylibrd ( ( 𝐴S𝐵S𝐶C ) → ( ( 𝐴𝐶𝐵𝐶 ) → ( 𝐴 𝐵 ) ⊆ 𝐶 ) )
21 shub1 ( ( 𝐴S𝐵S ) → 𝐴 ⊆ ( 𝐴 𝐵 ) )
22 2 5 21 syl2anc ( ( 𝐴S𝐵S𝐶C ) → 𝐴 ⊆ ( 𝐴 𝐵 ) )
23 sstr ( ( 𝐴 ⊆ ( 𝐴 𝐵 ) ∧ ( 𝐴 𝐵 ) ⊆ 𝐶 ) → 𝐴𝐶 )
24 22 23 sylan ( ( ( 𝐴S𝐵S𝐶C ) ∧ ( 𝐴 𝐵 ) ⊆ 𝐶 ) → 𝐴𝐶 )
25 shub2 ( ( 𝐵S𝐴S ) → 𝐵 ⊆ ( 𝐴 𝐵 ) )
26 5 2 25 syl2anc ( ( 𝐴S𝐵S𝐶C ) → 𝐵 ⊆ ( 𝐴 𝐵 ) )
27 sstr ( ( 𝐵 ⊆ ( 𝐴 𝐵 ) ∧ ( 𝐴 𝐵 ) ⊆ 𝐶 ) → 𝐵𝐶 )
28 26 27 sylan ( ( ( 𝐴S𝐵S𝐶C ) ∧ ( 𝐴 𝐵 ) ⊆ 𝐶 ) → 𝐵𝐶 )
29 24 28 jca ( ( ( 𝐴S𝐵S𝐶C ) ∧ ( 𝐴 𝐵 ) ⊆ 𝐶 ) → ( 𝐴𝐶𝐵𝐶 ) )
30 29 ex ( ( 𝐴S𝐵S𝐶C ) → ( ( 𝐴 𝐵 ) ⊆ 𝐶 → ( 𝐴𝐶𝐵𝐶 ) ) )
31 20 30 impbid ( ( 𝐴S𝐵S𝐶C ) → ( ( 𝐴𝐶𝐵𝐶 ) ↔ ( 𝐴 𝐵 ) ⊆ 𝐶 ) )