theorem elshl (a b c: nat): $ a e. shl b c <-> c <= a /\ a - c e. b $;
Step | Hyp | Ref | Expression |
1 |
|
bitr |
(a e. shl b c <-> odd (shr (shl b c) a)) -> (odd (shr (shl b c) a) <-> c <= a /\ a - c e. b) -> (a e. shl b c <-> c <= a /\ a - c e. b) |
2 |
|
elnel |
a e. shl b c <-> odd (shr (shl b c) a) |
3 |
1, 2 |
ax_mp |
(odd (shr (shl b c) a) <-> c <= a /\ a - c e. b) -> (a e. shl b c <-> c <= a /\ a - c e. b) |
4 |
|
odddvd |
odd (shr (shl b c) a) <-> ~2 || shr (shl b c) a |
5 |
|
con1 |
(~c <= a -> 2 || shr (shl b c) a) -> ~2 || shr (shl b c) a -> c <= a |
6 |
|
ltnle |
a < c <-> ~c <= a |
7 |
|
ltle |
a < c -> a <= c |
8 |
|
shrshl1 |
a <= c -> shr (shl b c) a = shl b (c - a) |
9 |
7, 8 |
rsyl |
a < c -> shr (shl b c) a = shl b (c - a) |
10 |
9 |
dvdeq2d |
a < c -> (2 || shr (shl b c) a <-> 2 || shl b (c - a)) |
11 |
|
subpos |
a < c <-> 0 < c - a |
12 |
|
shl2dvd |
0 < c - a -> 2 || shl b (c - a) |
13 |
11, 12 |
sylbi |
a < c -> 2 || shl b (c - a) |
14 |
10, 13 |
mpbird |
a < c -> 2 || shr (shl b c) a |
15 |
6, 14 |
sylbir |
~c <= a -> 2 || shr (shl b c) a |
16 |
5, 15 |
ax_mp |
~2 || shr (shl b c) a -> c <= a |
17 |
4, 16 |
sylbi |
odd (shr (shl b c) a) -> c <= a |
18 |
|
anl |
c <= a /\ a - c e. b -> c <= a |
19 |
|
elnel |
a - c e. b <-> odd (shr b (a - c)) |
20 |
|
shrshl2 |
c <= a -> shr (shl b c) a = shr b (a - c) |
21 |
20 |
oddeqd |
c <= a -> (odd (shr (shl b c) a) <-> odd (shr b (a - c))) |
22 |
19, 21 |
syl6bbr |
c <= a -> (odd (shr (shl b c) a) <-> a - c e. b) |
23 |
|
bian1 |
c <= a -> (c <= a /\ a - c e. b <-> a - c e. b) |
24 |
22, 23 |
bitr4d |
c <= a -> (odd (shr (shl b c) a) <-> c <= a /\ a - c e. b) |
25 |
17, 18, 24 |
rbid |
odd (shr (shl b c) a) <-> c <= a /\ a - c e. b |
26 |
3, 25 |
ax_mp |
a e. shl b c <-> c <= a /\ a - c e. 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)