Metamath Proof Explorer


Theorem normpar

Description: Parallelogram law for norms. Remark 3.4(B) of Beran p. 98. (Contributed by NM, 15-Apr-2007) (New usage is discouraged.)

Ref Expression
Assertion normpar
|- ( ( A e. ~H /\ B e. ~H ) -> ( ( ( normh ` ( A -h B ) ) ^ 2 ) + ( ( normh ` ( A +h B ) ) ^ 2 ) ) = ( ( 2 x. ( ( normh ` A ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) )

Proof

Step Hyp Ref Expression
1 fvoveq1
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( normh ` ( A -h B ) ) = ( normh ` ( if ( A e. ~H , A , 0h ) -h B ) ) )
2 1 oveq1d
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( ( normh ` ( A -h B ) ) ^ 2 ) = ( ( normh ` ( if ( A e. ~H , A , 0h ) -h B ) ) ^ 2 ) )
3 fvoveq1
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( normh ` ( A +h B ) ) = ( normh ` ( if ( A e. ~H , A , 0h ) +h B ) ) )
4 3 oveq1d
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( ( normh ` ( A +h B ) ) ^ 2 ) = ( ( normh ` ( if ( A e. ~H , A , 0h ) +h B ) ) ^ 2 ) )
5 2 4 oveq12d
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( ( ( normh ` ( A -h B ) ) ^ 2 ) + ( ( normh ` ( A +h B ) ) ^ 2 ) ) = ( ( ( normh ` ( if ( A e. ~H , A , 0h ) -h B ) ) ^ 2 ) + ( ( normh ` ( if ( A e. ~H , A , 0h ) +h B ) ) ^ 2 ) ) )
6 fveq2
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( normh ` A ) = ( normh ` if ( A e. ~H , A , 0h ) ) )
7 6 oveq1d
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( ( normh ` A ) ^ 2 ) = ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) )
8 7 oveq2d
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( 2 x. ( ( normh ` A ) ^ 2 ) ) = ( 2 x. ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) ) )
9 8 oveq1d
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( ( 2 x. ( ( normh ` A ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) = ( ( 2 x. ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) )
10 5 9 eqeq12d
 |-  ( A = if ( A e. ~H , A , 0h ) -> ( ( ( ( normh ` ( A -h B ) ) ^ 2 ) + ( ( normh ` ( A +h B ) ) ^ 2 ) ) = ( ( 2 x. ( ( normh ` A ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) <-> ( ( ( normh ` ( if ( A e. ~H , A , 0h ) -h B ) ) ^ 2 ) + ( ( normh ` ( if ( A e. ~H , A , 0h ) +h B ) ) ^ 2 ) ) = ( ( 2 x. ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) ) )
11 oveq2
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( if ( A e. ~H , A , 0h ) -h B ) = ( if ( A e. ~H , A , 0h ) -h if ( B e. ~H , B , 0h ) ) )
12 11 fveq2d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( normh ` ( if ( A e. ~H , A , 0h ) -h B ) ) = ( normh ` ( if ( A e. ~H , A , 0h ) -h if ( B e. ~H , B , 0h ) ) ) )
13 12 oveq1d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( ( normh ` ( if ( A e. ~H , A , 0h ) -h B ) ) ^ 2 ) = ( ( normh ` ( if ( A e. ~H , A , 0h ) -h if ( B e. ~H , B , 0h ) ) ) ^ 2 ) )
14 oveq2
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( if ( A e. ~H , A , 0h ) +h B ) = ( if ( A e. ~H , A , 0h ) +h if ( B e. ~H , B , 0h ) ) )
15 14 fveq2d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( normh ` ( if ( A e. ~H , A , 0h ) +h B ) ) = ( normh ` ( if ( A e. ~H , A , 0h ) +h if ( B e. ~H , B , 0h ) ) ) )
16 15 oveq1d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( ( normh ` ( if ( A e. ~H , A , 0h ) +h B ) ) ^ 2 ) = ( ( normh ` ( if ( A e. ~H , A , 0h ) +h if ( B e. ~H , B , 0h ) ) ) ^ 2 ) )
17 13 16 oveq12d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( ( ( normh ` ( if ( A e. ~H , A , 0h ) -h B ) ) ^ 2 ) + ( ( normh ` ( if ( A e. ~H , A , 0h ) +h B ) ) ^ 2 ) ) = ( ( ( normh ` ( if ( A e. ~H , A , 0h ) -h if ( B e. ~H , B , 0h ) ) ) ^ 2 ) + ( ( normh ` ( if ( A e. ~H , A , 0h ) +h if ( B e. ~H , B , 0h ) ) ) ^ 2 ) ) )
18 fveq2
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( normh ` B ) = ( normh ` if ( B e. ~H , B , 0h ) ) )
19 18 oveq1d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( ( normh ` B ) ^ 2 ) = ( ( normh ` if ( B e. ~H , B , 0h ) ) ^ 2 ) )
20 19 oveq2d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( 2 x. ( ( normh ` B ) ^ 2 ) ) = ( 2 x. ( ( normh ` if ( B e. ~H , B , 0h ) ) ^ 2 ) ) )
21 20 oveq2d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( ( 2 x. ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) = ( ( 2 x. ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) ) + ( 2 x. ( ( normh ` if ( B e. ~H , B , 0h ) ) ^ 2 ) ) ) )
22 17 21 eqeq12d
 |-  ( B = if ( B e. ~H , B , 0h ) -> ( ( ( ( normh ` ( if ( A e. ~H , A , 0h ) -h B ) ) ^ 2 ) + ( ( normh ` ( if ( A e. ~H , A , 0h ) +h B ) ) ^ 2 ) ) = ( ( 2 x. ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) <-> ( ( ( normh ` ( if ( A e. ~H , A , 0h ) -h if ( B e. ~H , B , 0h ) ) ) ^ 2 ) + ( ( normh ` ( if ( A e. ~H , A , 0h ) +h if ( B e. ~H , B , 0h ) ) ) ^ 2 ) ) = ( ( 2 x. ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) ) + ( 2 x. ( ( normh ` if ( B e. ~H , B , 0h ) ) ^ 2 ) ) ) ) )
23 ifhvhv0
 |-  if ( A e. ~H , A , 0h ) e. ~H
24 ifhvhv0
 |-  if ( B e. ~H , B , 0h ) e. ~H
25 23 24 normpari
 |-  ( ( ( normh ` ( if ( A e. ~H , A , 0h ) -h if ( B e. ~H , B , 0h ) ) ) ^ 2 ) + ( ( normh ` ( if ( A e. ~H , A , 0h ) +h if ( B e. ~H , B , 0h ) ) ) ^ 2 ) ) = ( ( 2 x. ( ( normh ` if ( A e. ~H , A , 0h ) ) ^ 2 ) ) + ( 2 x. ( ( normh ` if ( B e. ~H , B , 0h ) ) ^ 2 ) ) )
26 10 22 25 dedth2h
 |-  ( ( A e. ~H /\ B e. ~H ) -> ( ( ( normh ` ( A -h B ) ) ^ 2 ) + ( ( normh ` ( A +h B ) ) ^ 2 ) ) = ( ( 2 x. ( ( normh ` A ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) )