Metamath Proof Explorer


Theorem moddvds

Description: Two ways to say A == B (mod N ), see also definition in ApostolNT p. 106. (Contributed by Mario Carneiro, 18-Feb-2014)

Ref Expression
Assertion moddvds NABAmodN=BmodNNAB

Proof

Step Hyp Ref Expression
1 nnrp NN+
2 1 adantr NABN+
3 0mod N+0modN=0
4 2 3 syl NAB0modN=0
5 4 eqeq2d NABABmodN=0modNABmodN=0
6 zre AA
7 6 ad2antrl NABA
8 zre BB
9 8 ad2antll NABB
10 9 renegcld NABB
11 modadd1 ABBN+AmodN=BmodNA+BmodN=B+BmodN
12 11 3expia ABBN+AmodN=BmodNA+BmodN=B+BmodN
13 7 9 10 2 12 syl22anc NABAmodN=BmodNA+BmodN=B+BmodN
14 7 recnd NABA
15 9 recnd NABB
16 14 15 negsubd NABA+B=AB
17 16 oveq1d NABA+BmodN=ABmodN
18 15 negidd NABB+B=0
19 18 oveq1d NABB+BmodN=0modN
20 17 19 eqeq12d NABA+BmodN=B+BmodNABmodN=0modN
21 13 20 sylibd NABAmodN=BmodNABmodN=0modN
22 7 9 resubcld NABAB
23 0red NAB0
24 modadd1 AB0BN+ABmodN=0modNA-B+BmodN=0+BmodN
25 24 3expia AB0BN+ABmodN=0modNA-B+BmodN=0+BmodN
26 22 23 9 2 25 syl22anc NABABmodN=0modNA-B+BmodN=0+BmodN
27 14 15 npcand NABA-B+B=A
28 27 oveq1d NABA-B+BmodN=AmodN
29 15 addlidd NAB0+B=B
30 29 oveq1d NAB0+BmodN=BmodN
31 28 30 eqeq12d NABA-B+BmodN=0+BmodNAmodN=BmodN
32 26 31 sylibd NABABmodN=0modNAmodN=BmodN
33 21 32 impbid NABAmodN=BmodNABmodN=0modN
34 zsubcl ABAB
35 dvdsval3 NABNABABmodN=0
36 34 35 sylan2 NABNABABmodN=0
37 5 33 36 3bitr4d NABAmodN=BmodNNAB
38 37 3impb NABAmodN=BmodNNAB