Metamath Proof Explorer


Theorem pjpyth

Description: Pythagorean theorem for projectors. (Contributed by NM, 11-Apr-2006) (New usage is discouraged.)

Ref Expression
Assertion pjpyth ( ( 𝐻C𝐴 ∈ ℋ ) → ( ( norm𝐴 ) ↑ 2 ) = ( ( ( norm ‘ ( ( proj𝐻 ) ‘ 𝐴 ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ 𝐻 ) ) ‘ 𝐴 ) ) ↑ 2 ) ) )

Proof

Step Hyp Ref Expression
1 fveq2 ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( proj𝐻 ) = ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) )
2 1 fveq1d ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( ( proj𝐻 ) ‘ 𝐴 ) = ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) )
3 2 fveq2d ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( norm ‘ ( ( proj𝐻 ) ‘ 𝐴 ) ) = ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) ) )
4 3 oveq1d ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( ( norm ‘ ( ( proj𝐻 ) ‘ 𝐴 ) ) ↑ 2 ) = ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) ) ↑ 2 ) )
5 2fveq3 ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( proj ‘ ( ⊥ ‘ 𝐻 ) ) = ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) )
6 5 fveq1d ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( ( proj ‘ ( ⊥ ‘ 𝐻 ) ) ‘ 𝐴 ) = ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) )
7 6 fveq2d ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( norm ‘ ( ( proj ‘ ( ⊥ ‘ 𝐻 ) ) ‘ 𝐴 ) ) = ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) ) )
8 7 oveq1d ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ 𝐻 ) ) ‘ 𝐴 ) ) ↑ 2 ) = ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) ) ↑ 2 ) )
9 4 8 oveq12d ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( ( ( norm ‘ ( ( proj𝐻 ) ‘ 𝐴 ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ 𝐻 ) ) ‘ 𝐴 ) ) ↑ 2 ) ) = ( ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) ) ↑ 2 ) ) )
10 9 eqeq2d ( 𝐻 = if ( 𝐻C , 𝐻 , ℋ ) → ( ( ( norm𝐴 ) ↑ 2 ) = ( ( ( norm ‘ ( ( proj𝐻 ) ‘ 𝐴 ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ 𝐻 ) ) ‘ 𝐴 ) ) ↑ 2 ) ) ↔ ( ( norm𝐴 ) ↑ 2 ) = ( ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) ) ↑ 2 ) ) ) )
11 fveq2 ( 𝐴 = if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) → ( norm𝐴 ) = ( norm ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) )
12 11 oveq1d ( 𝐴 = if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) → ( ( norm𝐴 ) ↑ 2 ) = ( ( norm ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ↑ 2 ) )
13 2fveq3 ( 𝐴 = if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) → ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) ) = ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) )
14 13 oveq1d ( 𝐴 = if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) → ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) ) ↑ 2 ) = ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) ↑ 2 ) )
15 2fveq3 ( 𝐴 = if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) → ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) ) = ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) )
16 15 oveq1d ( 𝐴 = if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) → ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) ) ↑ 2 ) = ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) ↑ 2 ) )
17 14 16 oveq12d ( 𝐴 = if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) → ( ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) ) ↑ 2 ) ) = ( ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) ↑ 2 ) ) )
18 12 17 eqeq12d ( 𝐴 = if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) → ( ( ( norm𝐴 ) ↑ 2 ) = ( ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ 𝐴 ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ 𝐴 ) ) ↑ 2 ) ) ↔ ( ( norm ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ↑ 2 ) = ( ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) ↑ 2 ) ) ) )
19 ifchhv if ( 𝐻C , 𝐻 , ℋ ) ∈ C
20 ifhvhv0 if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ∈ ℋ
21 19 20 pjpythi ( ( norm ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ↑ 2 ) = ( ( ( norm ‘ ( ( proj ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ if ( 𝐻C , 𝐻 , ℋ ) ) ) ‘ if ( 𝐴 ∈ ℋ , 𝐴 , 0 ) ) ) ↑ 2 ) )
22 10 18 21 dedth2h ( ( 𝐻C𝐴 ∈ ℋ ) → ( ( norm𝐴 ) ↑ 2 ) = ( ( ( norm ‘ ( ( proj𝐻 ) ‘ 𝐴 ) ) ↑ 2 ) + ( ( norm ‘ ( ( proj ‘ ( ⊥ ‘ 𝐻 ) ) ‘ 𝐴 ) ) ↑ 2 ) ) )