Theorem zmodeqmod | index | src |

theorem zmodeqmod (a b n: nat):
  $ n != 0 -> (a %Z n = b %Z n <-> modZ(n): a = b) $;
StepHypRefExpression
1 eqzeqm
b0 (a %Z n) = b0 (b %Z n) -> modZ(n): b0 (a %Z n) = b0 (b %Z n)
2 b0eq
a %Z n = b %Z n -> b0 (a %Z n) = b0 (b %Z n)
3 1, 2 syl
a %Z n = b %Z n -> modZ(n): b0 (a %Z n) = b0 (b %Z n)
4 zmodmodid
a %Z n % n = a %Z n
5 zmodmodid
b %Z n % n = b %Z n
6 zeqmeqm
modZ(n): b0 (a %Z n) = b0 (b %Z n) <-> mod(n): a %Z n = b %Z n
7 6 conv eqm
modZ(n): b0 (a %Z n) = b0 (b %Z n) <-> a %Z n % n = b %Z n % n
8 7 bi1i
modZ(n): b0 (a %Z n) = b0 (b %Z n) -> a %Z n % n = b %Z n % n
9 4, 5, 8 eqtr3g
modZ(n): b0 (a %Z n) = b0 (b %Z n) -> a %Z n = b %Z n
10 3, 9 ibii
a %Z n = b %Z n <-> modZ(n): b0 (a %Z n) = b0 (b %Z n)
11 zeqmmod
n != 0 -> modZ(n): b0 (a %Z n) = a
12 zeqmmod
n != 0 -> modZ(n): b0 (b %Z n) = b
13 11, 12 zeqmeqm23d
n != 0 -> (modZ(n): b0 (a %Z n) = b0 (b %Z n) <-> modZ(n): a = b)
14 10, 13 syl5bb
n != 0 -> (a %Z n = b %Z n <-> modZ(n): a = b)

Axiom use

axs_prop_calc (ax_1, ax_2, ax_3, ax_mp, itru), axs_pred_calc (ax_gen, ax_4, ax_5, ax_6, ax_7, ax_10, ax_11, ax_12), axs_set (elab, ax_8), axs_the (theid, the0), axs_peano (peano1, peano2, peano5, addeq, muleq, add0, addS, mul0, mulS)