Metamath Proof Explorer


Theorem mndodconglem

Description: Lemma for mndodcong . (Contributed by Mario Carneiro, 23-Sep-2015)

Ref Expression
Hypotheses odcl.1 𝑋 = ( Base ‘ 𝐺 )
odcl.2 𝑂 = ( od ‘ 𝐺 )
odid.3 · = ( .g𝐺 )
odid.4 0 = ( 0g𝐺 )
mndodconglem.1 ( 𝜑𝐺 ∈ Mnd )
mndodconglem.2 ( 𝜑𝐴𝑋 )
mndodconglem.3 ( 𝜑 → ( 𝑂𝐴 ) ∈ ℕ )
mndodconglem.4 ( 𝜑𝑀 ∈ ℕ0 )
mndodconglem.5 ( 𝜑𝑁 ∈ ℕ0 )
mndodconglem.6 ( 𝜑𝑀 < ( 𝑂𝐴 ) )
mndodconglem.7 ( 𝜑𝑁 < ( 𝑂𝐴 ) )
mndodconglem.8 ( 𝜑 → ( 𝑀 · 𝐴 ) = ( 𝑁 · 𝐴 ) )
Assertion mndodconglem ( ( 𝜑𝑀𝑁 ) → 𝑀 = 𝑁 )

Proof

Step Hyp Ref Expression
1 odcl.1 𝑋 = ( Base ‘ 𝐺 )
2 odcl.2 𝑂 = ( od ‘ 𝐺 )
3 odid.3 · = ( .g𝐺 )
4 odid.4 0 = ( 0g𝐺 )
5 mndodconglem.1 ( 𝜑𝐺 ∈ Mnd )
6 mndodconglem.2 ( 𝜑𝐴𝑋 )
7 mndodconglem.3 ( 𝜑 → ( 𝑂𝐴 ) ∈ ℕ )
8 mndodconglem.4 ( 𝜑𝑀 ∈ ℕ0 )
9 mndodconglem.5 ( 𝜑𝑁 ∈ ℕ0 )
10 mndodconglem.6 ( 𝜑𝑀 < ( 𝑂𝐴 ) )
11 mndodconglem.7 ( 𝜑𝑁 < ( 𝑂𝐴 ) )
12 mndodconglem.8 ( 𝜑 → ( 𝑀 · 𝐴 ) = ( 𝑁 · 𝐴 ) )
13 7 nnred ( 𝜑 → ( 𝑂𝐴 ) ∈ ℝ )
14 13 recnd ( 𝜑 → ( 𝑂𝐴 ) ∈ ℂ )
15 8 nn0red ( 𝜑𝑀 ∈ ℝ )
16 15 recnd ( 𝜑𝑀 ∈ ℂ )
17 9 nn0red ( 𝜑𝑁 ∈ ℝ )
18 17 recnd ( 𝜑𝑁 ∈ ℂ )
19 14 16 18 addsubassd ( 𝜑 → ( ( ( 𝑂𝐴 ) + 𝑀 ) − 𝑁 ) = ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) )
20 7 nnzd ( 𝜑 → ( 𝑂𝐴 ) ∈ ℤ )
21 8 nn0zd ( 𝜑𝑀 ∈ ℤ )
22 20 21 zaddcld ( 𝜑 → ( ( 𝑂𝐴 ) + 𝑀 ) ∈ ℤ )
23 22 zred ( 𝜑 → ( ( 𝑂𝐴 ) + 𝑀 ) ∈ ℝ )
24 nn0addge1 ( ( ( 𝑂𝐴 ) ∈ ℝ ∧ 𝑀 ∈ ℕ0 ) → ( 𝑂𝐴 ) ≤ ( ( 𝑂𝐴 ) + 𝑀 ) )
25 13 8 24 syl2anc ( 𝜑 → ( 𝑂𝐴 ) ≤ ( ( 𝑂𝐴 ) + 𝑀 ) )
26 17 13 23 11 25 ltletrd ( 𝜑𝑁 < ( ( 𝑂𝐴 ) + 𝑀 ) )
27 9 nn0zd ( 𝜑𝑁 ∈ ℤ )
28 znnsub ( ( 𝑁 ∈ ℤ ∧ ( ( 𝑂𝐴 ) + 𝑀 ) ∈ ℤ ) → ( 𝑁 < ( ( 𝑂𝐴 ) + 𝑀 ) ↔ ( ( ( 𝑂𝐴 ) + 𝑀 ) − 𝑁 ) ∈ ℕ ) )
29 27 22 28 syl2anc ( 𝜑 → ( 𝑁 < ( ( 𝑂𝐴 ) + 𝑀 ) ↔ ( ( ( 𝑂𝐴 ) + 𝑀 ) − 𝑁 ) ∈ ℕ ) )
30 26 29 mpbid ( 𝜑 → ( ( ( 𝑂𝐴 ) + 𝑀 ) − 𝑁 ) ∈ ℕ )
31 19 30 eqeltrrd ( 𝜑 → ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) ∈ ℕ )
32 14 16 18 addsub12d ( 𝜑 → ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) = ( 𝑀 + ( ( 𝑂𝐴 ) − 𝑁 ) ) )
33 32 oveq1d ( 𝜑 → ( ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) · 𝐴 ) = ( ( 𝑀 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) )
34 12 oveq1d ( 𝜑 → ( ( 𝑀 · 𝐴 ) ( +g𝐺 ) ( ( ( 𝑂𝐴 ) − 𝑁 ) · 𝐴 ) ) = ( ( 𝑁 · 𝐴 ) ( +g𝐺 ) ( ( ( 𝑂𝐴 ) − 𝑁 ) · 𝐴 ) ) )
35 znnsub ( ( 𝑁 ∈ ℤ ∧ ( 𝑂𝐴 ) ∈ ℤ ) → ( 𝑁 < ( 𝑂𝐴 ) ↔ ( ( 𝑂𝐴 ) − 𝑁 ) ∈ ℕ ) )
36 27 20 35 syl2anc ( 𝜑 → ( 𝑁 < ( 𝑂𝐴 ) ↔ ( ( 𝑂𝐴 ) − 𝑁 ) ∈ ℕ ) )
37 11 36 mpbid ( 𝜑 → ( ( 𝑂𝐴 ) − 𝑁 ) ∈ ℕ )
38 37 nnnn0d ( 𝜑 → ( ( 𝑂𝐴 ) − 𝑁 ) ∈ ℕ0 )
39 eqid ( +g𝐺 ) = ( +g𝐺 )
40 1 3 39 mulgnn0dir ( ( 𝐺 ∈ Mnd ∧ ( 𝑀 ∈ ℕ0 ∧ ( ( 𝑂𝐴 ) − 𝑁 ) ∈ ℕ0𝐴𝑋 ) ) → ( ( 𝑀 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) = ( ( 𝑀 · 𝐴 ) ( +g𝐺 ) ( ( ( 𝑂𝐴 ) − 𝑁 ) · 𝐴 ) ) )
41 5 8 38 6 40 syl13anc ( 𝜑 → ( ( 𝑀 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) = ( ( 𝑀 · 𝐴 ) ( +g𝐺 ) ( ( ( 𝑂𝐴 ) − 𝑁 ) · 𝐴 ) ) )
42 1 3 39 mulgnn0dir ( ( 𝐺 ∈ Mnd ∧ ( 𝑁 ∈ ℕ0 ∧ ( ( 𝑂𝐴 ) − 𝑁 ) ∈ ℕ0𝐴𝑋 ) ) → ( ( 𝑁 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) = ( ( 𝑁 · 𝐴 ) ( +g𝐺 ) ( ( ( 𝑂𝐴 ) − 𝑁 ) · 𝐴 ) ) )
43 5 9 38 6 42 syl13anc ( 𝜑 → ( ( 𝑁 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) = ( ( 𝑁 · 𝐴 ) ( +g𝐺 ) ( ( ( 𝑂𝐴 ) − 𝑁 ) · 𝐴 ) ) )
44 34 41 43 3eqtr4d ( 𝜑 → ( ( 𝑀 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) = ( ( 𝑁 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) )
45 18 14 pncan3d ( 𝜑 → ( 𝑁 + ( ( 𝑂𝐴 ) − 𝑁 ) ) = ( 𝑂𝐴 ) )
46 45 oveq1d ( 𝜑 → ( ( 𝑁 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) = ( ( 𝑂𝐴 ) · 𝐴 ) )
47 1 2 3 4 odid ( 𝐴𝑋 → ( ( 𝑂𝐴 ) · 𝐴 ) = 0 )
48 6 47 syl ( 𝜑 → ( ( 𝑂𝐴 ) · 𝐴 ) = 0 )
49 46 48 eqtrd ( 𝜑 → ( ( 𝑁 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) = 0 )
50 44 49 eqtrd ( 𝜑 → ( ( 𝑀 + ( ( 𝑂𝐴 ) − 𝑁 ) ) · 𝐴 ) = 0 )
51 33 50 eqtrd ( 𝜑 → ( ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) · 𝐴 ) = 0 )
52 1 2 3 4 odlem2 ( ( 𝐴𝑋 ∧ ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) ∈ ℕ ∧ ( ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) · 𝐴 ) = 0 ) → ( 𝑂𝐴 ) ∈ ( 1 ... ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) ) )
53 6 31 51 52 syl3anc ( 𝜑 → ( 𝑂𝐴 ) ∈ ( 1 ... ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) ) )
54 elfzle2 ( ( 𝑂𝐴 ) ∈ ( 1 ... ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) ) → ( 𝑂𝐴 ) ≤ ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) )
55 53 54 syl ( 𝜑 → ( 𝑂𝐴 ) ≤ ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) )
56 21 27 zsubcld ( 𝜑 → ( 𝑀𝑁 ) ∈ ℤ )
57 56 zred ( 𝜑 → ( 𝑀𝑁 ) ∈ ℝ )
58 13 57 addge01d ( 𝜑 → ( 0 ≤ ( 𝑀𝑁 ) ↔ ( 𝑂𝐴 ) ≤ ( ( 𝑂𝐴 ) + ( 𝑀𝑁 ) ) ) )
59 55 58 mpbird ( 𝜑 → 0 ≤ ( 𝑀𝑁 ) )
60 15 17 subge0d ( 𝜑 → ( 0 ≤ ( 𝑀𝑁 ) ↔ 𝑁𝑀 ) )
61 59 60 mpbid ( 𝜑𝑁𝑀 )
62 15 17 letri3d ( 𝜑 → ( 𝑀 = 𝑁 ↔ ( 𝑀𝑁𝑁𝑀 ) ) )
63 62 biimprd ( 𝜑 → ( ( 𝑀𝑁𝑁𝑀 ) → 𝑀 = 𝑁 ) )
64 61 63 mpan2d ( 𝜑 → ( 𝑀𝑁𝑀 = 𝑁 ) )
65 64 imp ( ( 𝜑𝑀𝑁 ) → 𝑀 = 𝑁 )