Metamath Proof Explorer


Theorem pjssdif1i

Description: A necessary and sufficient condition for the difference between two projectors to be a projector. Part 1 of Theorem 29.3 of Halmos p. 48 (shortened with pjssposi ). (Contributed by NM, 2-Jun-2006) (New usage is discouraged.)

Ref Expression
Hypotheses pjco.1 𝐺C
pjco.2 𝐻C
Assertion pjssdif1i ( 𝐺𝐻 ↔ ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj )

Proof

Step Hyp Ref Expression
1 pjco.1 𝐺C
2 pjco.2 𝐻C
3 1 2 pjssdif2i ( 𝐺𝐻 ↔ ( ( proj𝐻 ) −op ( proj𝐺 ) ) = ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) )
4 pjmfn proj Fn C
5 1 choccli ( ⊥ ‘ 𝐺 ) ∈ C
6 2 5 chincli ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ∈ C
7 fnfvelrn ( ( proj Fn C ∧ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ∈ C ) → ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) ∈ ran proj )
8 4 6 7 mp2an ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) ∈ ran proj
9 eleq1 ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) = ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) → ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj ↔ ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) ∈ ran proj ) )
10 8 9 mpbiri ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) = ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) → ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj )
11 fvelrnb ( proj Fn C → ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj ↔ ∃ 𝑥C ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) ) )
12 4 11 ax-mp ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj ↔ ∃ 𝑥C ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) )
13 pjige0 ( ( 𝑥C𝑦 ∈ ℋ ) → 0 ≤ ( ( ( proj𝑥 ) ‘ 𝑦 ) ·ih 𝑦 ) )
14 13 adantlr ( ( ( 𝑥C ∧ ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) ) ∧ 𝑦 ∈ ℋ ) → 0 ≤ ( ( ( proj𝑥 ) ‘ 𝑦 ) ·ih 𝑦 ) )
15 fveq1 ( ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) → ( ( proj𝑥 ) ‘ 𝑦 ) = ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) )
16 15 oveq1d ( ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) → ( ( ( proj𝑥 ) ‘ 𝑦 ) ·ih 𝑦 ) = ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) )
17 16 breq2d ( ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) → ( 0 ≤ ( ( ( proj𝑥 ) ‘ 𝑦 ) ·ih 𝑦 ) ↔ 0 ≤ ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) ) )
18 17 ad2antlr ( ( ( 𝑥C ∧ ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) ) ∧ 𝑦 ∈ ℋ ) → ( 0 ≤ ( ( ( proj𝑥 ) ‘ 𝑦 ) ·ih 𝑦 ) ↔ 0 ≤ ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) ) )
19 14 18 mpbid ( ( ( 𝑥C ∧ ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) ) ∧ 𝑦 ∈ ℋ ) → 0 ≤ ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) )
20 19 ralrimiva ( ( 𝑥C ∧ ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) ) → ∀ 𝑦 ∈ ℋ 0 ≤ ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) )
21 20 rexlimiva ( ∃ 𝑥C ( proj𝑥 ) = ( ( proj𝐻 ) −op ( proj𝐺 ) ) → ∀ 𝑦 ∈ ℋ 0 ≤ ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) )
22 12 21 sylbi ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj → ∀ 𝑦 ∈ ℋ 0 ≤ ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) )
23 1 2 pjssposi ( ∀ 𝑦 ∈ ℋ 0 ≤ ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) ↔ 𝐺𝐻 )
24 23 3 bitri ( ∀ 𝑦 ∈ ℋ 0 ≤ ( ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ‘ 𝑦 ) ·ih 𝑦 ) ↔ ( ( proj𝐻 ) −op ( proj𝐺 ) ) = ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) )
25 22 24 sylib ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj → ( ( proj𝐻 ) −op ( proj𝐺 ) ) = ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) )
26 10 25 impbii ( ( ( proj𝐻 ) −op ( proj𝐺 ) ) = ( proj ‘ ( 𝐻 ∩ ( ⊥ ‘ 𝐺 ) ) ) ↔ ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj )
27 3 26 bitri ( 𝐺𝐻 ↔ ( ( proj𝐻 ) −op ( proj𝐺 ) ) ∈ ran proj )