Theorem zeqmznsub2 | index | src |

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

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)