Step | Hyp | Ref | Expression |
1 |
|
axext |
power (upto a) == upto (2 ^ a) -> power (upto a) = upto (2 ^ a) |
2 |
|
bitr4 |
(x e. power (upto a) <-> x C_ upto a) -> (x e. upto (2 ^ a) <-> x C_ upto a) -> (x e. power (upto a) <-> x e. upto (2 ^ a)) |
3 |
|
elpower |
x e. power (upto a) <-> x C_ upto a |
4 |
2, 3 |
ax_mp |
(x e. upto (2 ^ a) <-> x C_ upto a) -> (x e. power (upto a) <-> x e. upto (2 ^ a)) |
5 |
|
bitr4 |
(x e. upto (2 ^ a) <-> x < 2 ^ a) -> (x C_ upto a <-> x < 2 ^ a) -> (x e. upto (2 ^ a) <-> x C_ upto a) |
6 |
|
elupto |
x e. upto (2 ^ a) <-> x < 2 ^ a |
7 |
5, 6 |
ax_mp |
(x C_ upto a <-> x < 2 ^ a) -> (x e. upto (2 ^ a) <-> x C_ upto a) |
8 |
|
lteq2 |
suc (upto a) = 2 ^ a -> (x < suc (upto a) <-> x < 2 ^ a) |
9 |
|
sucupto |
suc (upto a) = 2 ^ a |
10 |
8, 9 |
ax_mp |
x < suc (upto a) <-> x < 2 ^ a |
11 |
|
leltsuc |
x <= upto a <-> x < suc (upto a) |
12 |
|
ssle |
x C_ upto a -> x <= upto a |
13 |
11, 12 |
sylib |
x C_ upto a -> x < suc (upto a) |
14 |
10, 13 |
sylib |
x C_ upto a -> x < 2 ^ a |
15 |
|
shreq0 |
shr x a = 0 <-> x < 2 ^ a |
16 |
|
elupto |
y e. upto a <-> y < a |
17 |
|
el02 |
~y - a e. 0 |
18 |
|
anll |
shr x a = 0 /\ y e. x /\ ~y < a -> shr x a = 0 |
19 |
18 |
elneq2d |
shr x a = 0 /\ y e. x /\ ~y < a -> (y - a e. shr x a <-> y - a e. 0) |
20 |
|
elshr |
y - a e. shr x a <-> y - a + a e. x |
21 |
|
npcan |
a <= y -> y - a + a = y |
22 |
|
lenlt |
a <= y <-> ~y < a |
23 |
|
anr |
shr x a = 0 /\ y e. x /\ ~y < a -> ~y < a |
24 |
22, 23 |
sylibr |
shr x a = 0 /\ y e. x /\ ~y < a -> a <= y |
25 |
21, 24 |
syl |
shr x a = 0 /\ y e. x /\ ~y < a -> y - a + a = y |
26 |
25 |
eleq1d |
shr x a = 0 /\ y e. x /\ ~y < a -> (y - a + a e. x <-> y e. x) |
27 |
|
anlr |
shr x a = 0 /\ y e. x /\ ~y < a -> y e. x |
28 |
26, 27 |
mpbird |
shr x a = 0 /\ y e. x /\ ~y < a -> y - a + a e. x |
29 |
20, 28 |
sylibr |
shr x a = 0 /\ y e. x /\ ~y < a -> y - a e. shr x a |
30 |
19, 29 |
mpbid |
shr x a = 0 /\ y e. x /\ ~y < a -> y - a e. 0 |
31 |
30 |
exp |
shr x a = 0 /\ y e. x -> ~y < a -> y - a e. 0 |
32 |
31 |
con1d |
shr x a = 0 /\ y e. x -> ~y - a e. 0 -> y < a |
33 |
17, 32 |
mpi |
shr x a = 0 /\ y e. x -> y < a |
34 |
16, 33 |
sylibr |
shr x a = 0 /\ y e. x -> y e. upto a |
35 |
34 |
exp |
shr x a = 0 -> y e. x -> y e. upto a |
36 |
35 |
iald |
shr x a = 0 -> A. y (y e. x -> y e. upto a) |
37 |
36 |
conv subset |
shr x a = 0 -> x C_ upto a |
38 |
15, 37 |
sylbir |
x < 2 ^ a -> x C_ upto a |
39 |
14, 38 |
ibii |
x C_ upto a <-> x < 2 ^ a |
40 |
7, 39 |
ax_mp |
x e. upto (2 ^ a) <-> x C_ upto a |
41 |
4, 40 |
ax_mp |
x e. power (upto a) <-> x e. upto (2 ^ a) |
42 |
41 |
ax_gen |
A. x (x e. power (upto a) <-> x e. upto (2 ^ a)) |
43 |
42 |
conv eqs |
power (upto a) == upto (2 ^ a) |
44 |
1, 43 |
ax_mp |
power (upto a) = upto (2 ^ a) |