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 ) ) )