Metamath Proof Explorer


Theorem ecopovtrn

Description: Assuming that operation F is commutative (second hypothesis), closed (third hypothesis), associative (fourth hypothesis), and has the cancellation property (fifth hypothesis), show that the relation .~ , specified by the first hypothesis, is transitive. (Contributed by NM, 11-Feb-1996) (Revised by Mario Carneiro, 26-Apr-2015)

Ref Expression
Hypotheses ecopopr.1 = { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( ( 𝑥 ∈ ( 𝑆 × 𝑆 ) ∧ 𝑦 ∈ ( 𝑆 × 𝑆 ) ) ∧ ∃ 𝑧𝑤𝑣𝑢 ( ( 𝑥 = ⟨ 𝑧 , 𝑤 ⟩ ∧ 𝑦 = ⟨ 𝑣 , 𝑢 ⟩ ) ∧ ( 𝑧 + 𝑢 ) = ( 𝑤 + 𝑣 ) ) ) }
ecopopr.com ( 𝑥 + 𝑦 ) = ( 𝑦 + 𝑥 )
ecopopr.cl ( ( 𝑥𝑆𝑦𝑆 ) → ( 𝑥 + 𝑦 ) ∈ 𝑆 )
ecopopr.ass ( ( 𝑥 + 𝑦 ) + 𝑧 ) = ( 𝑥 + ( 𝑦 + 𝑧 ) )
ecopopr.can ( ( 𝑥𝑆𝑦𝑆 ) → ( ( 𝑥 + 𝑦 ) = ( 𝑥 + 𝑧 ) → 𝑦 = 𝑧 ) )
Assertion ecopovtrn ( ( 𝐴 𝐵𝐵 𝐶 ) → 𝐴 𝐶 )

Proof

Step Hyp Ref Expression
1 ecopopr.1 = { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( ( 𝑥 ∈ ( 𝑆 × 𝑆 ) ∧ 𝑦 ∈ ( 𝑆 × 𝑆 ) ) ∧ ∃ 𝑧𝑤𝑣𝑢 ( ( 𝑥 = ⟨ 𝑧 , 𝑤 ⟩ ∧ 𝑦 = ⟨ 𝑣 , 𝑢 ⟩ ) ∧ ( 𝑧 + 𝑢 ) = ( 𝑤 + 𝑣 ) ) ) }
2 ecopopr.com ( 𝑥 + 𝑦 ) = ( 𝑦 + 𝑥 )
3 ecopopr.cl ( ( 𝑥𝑆𝑦𝑆 ) → ( 𝑥 + 𝑦 ) ∈ 𝑆 )
4 ecopopr.ass ( ( 𝑥 + 𝑦 ) + 𝑧 ) = ( 𝑥 + ( 𝑦 + 𝑧 ) )
5 ecopopr.can ( ( 𝑥𝑆𝑦𝑆 ) → ( ( 𝑥 + 𝑦 ) = ( 𝑥 + 𝑧 ) → 𝑦 = 𝑧 ) )
6 opabssxp { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( ( 𝑥 ∈ ( 𝑆 × 𝑆 ) ∧ 𝑦 ∈ ( 𝑆 × 𝑆 ) ) ∧ ∃ 𝑧𝑤𝑣𝑢 ( ( 𝑥 = ⟨ 𝑧 , 𝑤 ⟩ ∧ 𝑦 = ⟨ 𝑣 , 𝑢 ⟩ ) ∧ ( 𝑧 + 𝑢 ) = ( 𝑤 + 𝑣 ) ) ) } ⊆ ( ( 𝑆 × 𝑆 ) × ( 𝑆 × 𝑆 ) )
7 1 6 eqsstri ⊆ ( ( 𝑆 × 𝑆 ) × ( 𝑆 × 𝑆 ) )
8 7 brel ( 𝐴 𝐵 → ( 𝐴 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐵 ∈ ( 𝑆 × 𝑆 ) ) )
9 8 simpld ( 𝐴 𝐵𝐴 ∈ ( 𝑆 × 𝑆 ) )
10 7 brel ( 𝐵 𝐶 → ( 𝐵 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐶 ∈ ( 𝑆 × 𝑆 ) ) )
11 9 10 anim12i ( ( 𝐴 𝐵𝐵 𝐶 ) → ( 𝐴 ∈ ( 𝑆 × 𝑆 ) ∧ ( 𝐵 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐶 ∈ ( 𝑆 × 𝑆 ) ) ) )
12 3anass ( ( 𝐴 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐵 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐶 ∈ ( 𝑆 × 𝑆 ) ) ↔ ( 𝐴 ∈ ( 𝑆 × 𝑆 ) ∧ ( 𝐵 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐶 ∈ ( 𝑆 × 𝑆 ) ) ) )
13 11 12 sylibr ( ( 𝐴 𝐵𝐵 𝐶 ) → ( 𝐴 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐵 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐶 ∈ ( 𝑆 × 𝑆 ) ) )
14 eqid ( 𝑆 × 𝑆 ) = ( 𝑆 × 𝑆 )
15 breq1 ( ⟨ 𝑓 , 𝑔 ⟩ = 𝐴 → ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ↔ 𝐴 , 𝑡 ⟩ ) )
16 15 anbi1d ( ⟨ 𝑓 , 𝑔 ⟩ = 𝐴 → ( ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) ↔ ( 𝐴 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) ) )
17 breq1 ( ⟨ 𝑓 , 𝑔 ⟩ = 𝐴 → ( ⟨ 𝑓 , 𝑔𝑠 , 𝑟 ⟩ ↔ 𝐴 𝑠 , 𝑟 ⟩ ) )
18 16 17 imbi12d ( ⟨ 𝑓 , 𝑔 ⟩ = 𝐴 → ( ( ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) → ⟨ 𝑓 , 𝑔𝑠 , 𝑟 ⟩ ) ↔ ( ( 𝐴 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) → 𝐴 𝑠 , 𝑟 ⟩ ) ) )
19 breq2 ( ⟨ , 𝑡 ⟩ = 𝐵 → ( 𝐴 , 𝑡 ⟩ ↔ 𝐴 𝐵 ) )
20 breq1 ( ⟨ , 𝑡 ⟩ = 𝐵 → ( ⟨ , 𝑡𝑠 , 𝑟 ⟩ ↔ 𝐵 𝑠 , 𝑟 ⟩ ) )
21 19 20 anbi12d ( ⟨ , 𝑡 ⟩ = 𝐵 → ( ( 𝐴 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) ↔ ( 𝐴 𝐵𝐵 𝑠 , 𝑟 ⟩ ) ) )
22 21 imbi1d ( ⟨ , 𝑡 ⟩ = 𝐵 → ( ( ( 𝐴 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) → 𝐴 𝑠 , 𝑟 ⟩ ) ↔ ( ( 𝐴 𝐵𝐵 𝑠 , 𝑟 ⟩ ) → 𝐴 𝑠 , 𝑟 ⟩ ) ) )
23 breq2 ( ⟨ 𝑠 , 𝑟 ⟩ = 𝐶 → ( 𝐵 𝑠 , 𝑟 ⟩ ↔ 𝐵 𝐶 ) )
24 23 anbi2d ( ⟨ 𝑠 , 𝑟 ⟩ = 𝐶 → ( ( 𝐴 𝐵𝐵 𝑠 , 𝑟 ⟩ ) ↔ ( 𝐴 𝐵𝐵 𝐶 ) ) )
25 breq2 ( ⟨ 𝑠 , 𝑟 ⟩ = 𝐶 → ( 𝐴 𝑠 , 𝑟 ⟩ ↔ 𝐴 𝐶 ) )
26 24 25 imbi12d ( ⟨ 𝑠 , 𝑟 ⟩ = 𝐶 → ( ( ( 𝐴 𝐵𝐵 𝑠 , 𝑟 ⟩ ) → 𝐴 𝑠 , 𝑟 ⟩ ) ↔ ( ( 𝐴 𝐵𝐵 𝐶 ) → 𝐴 𝐶 ) ) )
27 1 ecopoveq ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ) → ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ↔ ( 𝑓 + 𝑡 ) = ( 𝑔 + ) ) )
28 27 3adant3 ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ↔ ( 𝑓 + 𝑡 ) = ( 𝑔 + ) ) )
29 1 ecopoveq ( ( ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ⟨ , 𝑡𝑠 , 𝑟 ⟩ ↔ ( + 𝑟 ) = ( 𝑡 + 𝑠 ) ) )
30 29 3adant1 ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ⟨ , 𝑡𝑠 , 𝑟 ⟩ ↔ ( + 𝑟 ) = ( 𝑡 + 𝑠 ) ) )
31 28 30 anbi12d ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) ↔ ( ( 𝑓 + 𝑡 ) = ( 𝑔 + ) ∧ ( + 𝑟 ) = ( 𝑡 + 𝑠 ) ) ) )
32 oveq12 ( ( ( 𝑓 + 𝑡 ) = ( 𝑔 + ) ∧ ( + 𝑟 ) = ( 𝑡 + 𝑠 ) ) → ( ( 𝑓 + 𝑡 ) + ( + 𝑟 ) ) = ( ( 𝑔 + ) + ( 𝑡 + 𝑠 ) ) )
33 vex ∈ V
34 vex 𝑡 ∈ V
35 vex 𝑓 ∈ V
36 vex 𝑟 ∈ V
37 33 34 35 2 4 36 caov411 ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( 𝑓 + 𝑡 ) + ( + 𝑟 ) )
38 vex 𝑔 ∈ V
39 vex 𝑠 ∈ V
40 38 34 33 2 4 39 caov411 ( ( 𝑔 + 𝑡 ) + ( + 𝑠 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) )
41 38 34 33 2 4 39 caov4 ( ( 𝑔 + 𝑡 ) + ( + 𝑠 ) ) = ( ( 𝑔 + ) + ( 𝑡 + 𝑠 ) )
42 40 41 eqtr3i ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) = ( ( 𝑔 + ) + ( 𝑡 + 𝑠 ) )
43 32 37 42 3eqtr4g ( ( ( 𝑓 + 𝑡 ) = ( 𝑔 + ) ∧ ( + 𝑟 ) = ( 𝑡 + 𝑠 ) ) → ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) )
44 31 43 syl6bi ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) → ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) ) )
45 3 caovcl ( ( 𝑆𝑡𝑆 ) → ( + 𝑡 ) ∈ 𝑆 )
46 3 caovcl ( ( 𝑓𝑆𝑟𝑆 ) → ( 𝑓 + 𝑟 ) ∈ 𝑆 )
47 ovex ( 𝑔 + 𝑠 ) ∈ V
48 47 5 caovcan ( ( ( + 𝑡 ) ∈ 𝑆 ∧ ( 𝑓 + 𝑟 ) ∈ 𝑆 ) → ( ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) → ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
49 45 46 48 syl2an ( ( ( 𝑆𝑡𝑆 ) ∧ ( 𝑓𝑆𝑟𝑆 ) ) → ( ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) → ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
50 49 3impb ( ( ( 𝑆𝑡𝑆 ) ∧ 𝑓𝑆𝑟𝑆 ) → ( ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) → ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
51 50 3com12 ( ( 𝑓𝑆 ∧ ( 𝑆𝑡𝑆 ) ∧ 𝑟𝑆 ) → ( ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) → ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
52 51 3adant3l ( ( 𝑓𝑆 ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) → ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
53 52 3adant1r ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ( ( + 𝑡 ) + ( 𝑓 + 𝑟 ) ) = ( ( + 𝑡 ) + ( 𝑔 + 𝑠 ) ) → ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
54 44 53 syld ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) → ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
55 1 ecopoveq ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ⟨ 𝑓 , 𝑔𝑠 , 𝑟 ⟩ ↔ ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
56 55 3adant2 ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ⟨ 𝑓 , 𝑔𝑠 , 𝑟 ⟩ ↔ ( 𝑓 + 𝑟 ) = ( 𝑔 + 𝑠 ) ) )
57 54 56 sylibrd ( ( ( 𝑓𝑆𝑔𝑆 ) ∧ ( 𝑆𝑡𝑆 ) ∧ ( 𝑠𝑆𝑟𝑆 ) ) → ( ( ⟨ 𝑓 , 𝑔 , 𝑡 ⟩ ∧ ⟨ , 𝑡𝑠 , 𝑟 ⟩ ) → ⟨ 𝑓 , 𝑔𝑠 , 𝑟 ⟩ ) )
58 14 18 22 26 57 3optocl ( ( 𝐴 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐵 ∈ ( 𝑆 × 𝑆 ) ∧ 𝐶 ∈ ( 𝑆 × 𝑆 ) ) → ( ( 𝐴 𝐵𝐵 𝐶 ) → 𝐴 𝐶 ) )
59 13 58 mpcom ( ( 𝐴 𝐵𝐵 𝐶 ) → 𝐴 𝐶 )