Theorem shrmodsub | index | src |

theorem shrmodsub (a b c: nat):
  $ c <= b -> shr (a % 2 ^ b) c = shr a c % 2 ^ (b - c) $;
StepHypRefExpression
1 shrmodadd2
shr (a % 2 ^ (b - c + c)) c = shr a c % 2 ^ (b - c)
2 npcan
c <= b -> b - c + c = b
3 2 eqcomd
c <= b -> b = b - c + c
4 3 poweq2d
c <= b -> 2 ^ b = 2 ^ (b - c + c)
5 4 modeq2d
c <= b -> a % 2 ^ b = a % 2 ^ (b - c + c)
6 5 shreq1d
c <= b -> shr (a % 2 ^ b) c = shr (a % 2 ^ (b - c + c)) c
7 1, 6 syl6eq
c <= b -> shr (a % 2 ^ b) c = shr a c % 2 ^ (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)