Metamath Proof Explorer


Theorem sn-addcand

Description: addcand without ax-mulcom . Note how the proof is almost identical to addcan . (Contributed by SN, 5-May-2024)

Ref Expression
Hypotheses sn-addcand.a ( 𝜑𝐴 ∈ ℂ )
sn-addcand.b ( 𝜑𝐵 ∈ ℂ )
sn-addcand.c ( 𝜑𝐶 ∈ ℂ )
Assertion sn-addcand ( 𝜑 → ( ( 𝐴 + 𝐵 ) = ( 𝐴 + 𝐶 ) ↔ 𝐵 = 𝐶 ) )

Proof

Step Hyp Ref Expression
1 sn-addcand.a ( 𝜑𝐴 ∈ ℂ )
2 sn-addcand.b ( 𝜑𝐵 ∈ ℂ )
3 sn-addcand.c ( 𝜑𝐶 ∈ ℂ )
4 sn-negex2 ( 𝐴 ∈ ℂ → ∃ 𝑥 ∈ ℂ ( 𝑥 + 𝐴 ) = 0 )
5 1 4 syl ( 𝜑 → ∃ 𝑥 ∈ ℂ ( 𝑥 + 𝐴 ) = 0 )
6 oveq2 ( ( 𝐴 + 𝐵 ) = ( 𝐴 + 𝐶 ) → ( 𝑥 + ( 𝐴 + 𝐵 ) ) = ( 𝑥 + ( 𝐴 + 𝐶 ) ) )
7 simprr ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( 𝑥 + 𝐴 ) = 0 )
8 7 oveq1d ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( ( 𝑥 + 𝐴 ) + 𝐵 ) = ( 0 + 𝐵 ) )
9 simprl ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → 𝑥 ∈ ℂ )
10 1 adantr ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → 𝐴 ∈ ℂ )
11 2 adantr ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → 𝐵 ∈ ℂ )
12 9 10 11 addassd ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( ( 𝑥 + 𝐴 ) + 𝐵 ) = ( 𝑥 + ( 𝐴 + 𝐵 ) ) )
13 sn-addid2 ( 𝐵 ∈ ℂ → ( 0 + 𝐵 ) = 𝐵 )
14 11 13 syl ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( 0 + 𝐵 ) = 𝐵 )
15 8 12 14 3eqtr3d ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( 𝑥 + ( 𝐴 + 𝐵 ) ) = 𝐵 )
16 7 oveq1d ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( ( 𝑥 + 𝐴 ) + 𝐶 ) = ( 0 + 𝐶 ) )
17 3 adantr ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → 𝐶 ∈ ℂ )
18 9 10 17 addassd ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( ( 𝑥 + 𝐴 ) + 𝐶 ) = ( 𝑥 + ( 𝐴 + 𝐶 ) ) )
19 sn-addid2 ( 𝐶 ∈ ℂ → ( 0 + 𝐶 ) = 𝐶 )
20 17 19 syl ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( 0 + 𝐶 ) = 𝐶 )
21 16 18 20 3eqtr3d ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( 𝑥 + ( 𝐴 + 𝐶 ) ) = 𝐶 )
22 15 21 eqeq12d ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( ( 𝑥 + ( 𝐴 + 𝐵 ) ) = ( 𝑥 + ( 𝐴 + 𝐶 ) ) ↔ 𝐵 = 𝐶 ) )
23 6 22 syl5ib ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( ( 𝐴 + 𝐵 ) = ( 𝐴 + 𝐶 ) → 𝐵 = 𝐶 ) )
24 oveq2 ( 𝐵 = 𝐶 → ( 𝐴 + 𝐵 ) = ( 𝐴 + 𝐶 ) )
25 23 24 impbid1 ( ( 𝜑 ∧ ( 𝑥 ∈ ℂ ∧ ( 𝑥 + 𝐴 ) = 0 ) ) → ( ( 𝐴 + 𝐵 ) = ( 𝐴 + 𝐶 ) ↔ 𝐵 = 𝐶 ) )
26 5 25 rexlimddv ( 𝜑 → ( ( 𝐴 + 𝐵 ) = ( 𝐴 + 𝐶 ) ↔ 𝐵 = 𝐶 ) )