Theorem zeqmznsub1 | index | src |

theorem zeqmznsub1 (a b c n: nat):
  $ modZ(n): a -ZN c = b -ZN c <-> mod(n): a = b $;
StepHypRefExpression
1 bitr3
(modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> modZ(n): a -ZN c = b -ZN c) ->
  (modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> mod(n): a = b) ->
  (modZ(n): a -ZN c = b -ZN c <-> mod(n): a = b)
2 zeqmeq
n = n -> b0 a -Z b0 c = a -ZN c -> b0 b -Z b0 c = b -ZN c -> (modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> modZ(n): a -ZN c = b -ZN c)
3 eqid
n = n
4 2, 3 ax_mp
b0 a -Z b0 c = a -ZN c -> b0 b -Z b0 c = b -ZN c -> (modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> modZ(n): a -ZN c = b -ZN c)
5 zsubb0
b0 a -Z b0 c = a -ZN c
6 4, 5 ax_mp
b0 b -Z b0 c = b -ZN c -> (modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> modZ(n): a -ZN c = b -ZN c)
7 zsubb0
b0 b -Z b0 c = b -ZN c
8 6, 7 ax_mp
modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> modZ(n): a -ZN c = b -ZN c
9 1, 8 ax_mp
(modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> mod(n): a = b) -> (modZ(n): a -ZN c = b -ZN c <-> mod(n): a = b)
10 bitr
(modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> modZ(n): b0 a = b0 b) ->
  (modZ(n): b0 a = b0 b <-> mod(n): a = b) ->
  (modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> mod(n): a = b)
11 zeqmsub1
modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> modZ(n): b0 a = b0 b
12 10, 11 ax_mp
(modZ(n): b0 a = b0 b <-> mod(n): a = b) -> (modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> mod(n): a = b)
13 zeqmeqm
modZ(n): b0 a = b0 b <-> mod(n): a = b
14 12, 13 ax_mp
modZ(n): b0 a -Z b0 c = b0 b -Z b0 c <-> mod(n): a = b
15 9, 14 ax_mp
modZ(n): a -ZN c = b -ZN c <-> mod(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)