Metamath Proof Explorer


Theorem caovassg

Description: Convert an operation associative law to class notation. (Contributed by Mario Carneiro, 1-Jun-2013) (Revised by Mario Carneiro, 26-May-2014)

Ref Expression
Hypothesis caovassg.1 ( ( 𝜑 ∧ ( 𝑥𝑆𝑦𝑆𝑧𝑆 ) ) → ( ( 𝑥 𝐹 𝑦 ) 𝐹 𝑧 ) = ( 𝑥 𝐹 ( 𝑦 𝐹 𝑧 ) ) )
Assertion caovassg ( ( 𝜑 ∧ ( 𝐴𝑆𝐵𝑆𝐶𝑆 ) ) → ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝐶 ) = ( 𝐴 𝐹 ( 𝐵 𝐹 𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 caovassg.1 ( ( 𝜑 ∧ ( 𝑥𝑆𝑦𝑆𝑧𝑆 ) ) → ( ( 𝑥 𝐹 𝑦 ) 𝐹 𝑧 ) = ( 𝑥 𝐹 ( 𝑦 𝐹 𝑧 ) ) )
2 1 ralrimivvva ( 𝜑 → ∀ 𝑥𝑆𝑦𝑆𝑧𝑆 ( ( 𝑥 𝐹 𝑦 ) 𝐹 𝑧 ) = ( 𝑥 𝐹 ( 𝑦 𝐹 𝑧 ) ) )
3 oveq1 ( 𝑥 = 𝐴 → ( 𝑥 𝐹 𝑦 ) = ( 𝐴 𝐹 𝑦 ) )
4 3 oveq1d ( 𝑥 = 𝐴 → ( ( 𝑥 𝐹 𝑦 ) 𝐹 𝑧 ) = ( ( 𝐴 𝐹 𝑦 ) 𝐹 𝑧 ) )
5 oveq1 ( 𝑥 = 𝐴 → ( 𝑥 𝐹 ( 𝑦 𝐹 𝑧 ) ) = ( 𝐴 𝐹 ( 𝑦 𝐹 𝑧 ) ) )
6 4 5 eqeq12d ( 𝑥 = 𝐴 → ( ( ( 𝑥 𝐹 𝑦 ) 𝐹 𝑧 ) = ( 𝑥 𝐹 ( 𝑦 𝐹 𝑧 ) ) ↔ ( ( 𝐴 𝐹 𝑦 ) 𝐹 𝑧 ) = ( 𝐴 𝐹 ( 𝑦 𝐹 𝑧 ) ) ) )
7 oveq2 ( 𝑦 = 𝐵 → ( 𝐴 𝐹 𝑦 ) = ( 𝐴 𝐹 𝐵 ) )
8 7 oveq1d ( 𝑦 = 𝐵 → ( ( 𝐴 𝐹 𝑦 ) 𝐹 𝑧 ) = ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝑧 ) )
9 oveq1 ( 𝑦 = 𝐵 → ( 𝑦 𝐹 𝑧 ) = ( 𝐵 𝐹 𝑧 ) )
10 9 oveq2d ( 𝑦 = 𝐵 → ( 𝐴 𝐹 ( 𝑦 𝐹 𝑧 ) ) = ( 𝐴 𝐹 ( 𝐵 𝐹 𝑧 ) ) )
11 8 10 eqeq12d ( 𝑦 = 𝐵 → ( ( ( 𝐴 𝐹 𝑦 ) 𝐹 𝑧 ) = ( 𝐴 𝐹 ( 𝑦 𝐹 𝑧 ) ) ↔ ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝑧 ) = ( 𝐴 𝐹 ( 𝐵 𝐹 𝑧 ) ) ) )
12 oveq2 ( 𝑧 = 𝐶 → ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝑧 ) = ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝐶 ) )
13 oveq2 ( 𝑧 = 𝐶 → ( 𝐵 𝐹 𝑧 ) = ( 𝐵 𝐹 𝐶 ) )
14 13 oveq2d ( 𝑧 = 𝐶 → ( 𝐴 𝐹 ( 𝐵 𝐹 𝑧 ) ) = ( 𝐴 𝐹 ( 𝐵 𝐹 𝐶 ) ) )
15 12 14 eqeq12d ( 𝑧 = 𝐶 → ( ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝑧 ) = ( 𝐴 𝐹 ( 𝐵 𝐹 𝑧 ) ) ↔ ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝐶 ) = ( 𝐴 𝐹 ( 𝐵 𝐹 𝐶 ) ) ) )
16 6 11 15 rspc3v ( ( 𝐴𝑆𝐵𝑆𝐶𝑆 ) → ( ∀ 𝑥𝑆𝑦𝑆𝑧𝑆 ( ( 𝑥 𝐹 𝑦 ) 𝐹 𝑧 ) = ( 𝑥 𝐹 ( 𝑦 𝐹 𝑧 ) ) → ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝐶 ) = ( 𝐴 𝐹 ( 𝐵 𝐹 𝐶 ) ) ) )
17 2 16 mpan9 ( ( 𝜑 ∧ ( 𝐴𝑆𝐵𝑆𝐶𝑆 ) ) → ( ( 𝐴 𝐹 𝐵 ) 𝐹 𝐶 ) = ( 𝐴 𝐹 ( 𝐵 𝐹 𝐶 ) ) )