Documentation
Mathlib
.
Data
.
Nat
.
Size
Search
return to top
source
Imports
Init
Mathlib.Algebra.Group.Basic
Mathlib.Data.Nat.Bits
Mathlib.Algebra.Group.Nat.Defs
Imported by
Nat
.
shiftLeft_eq_mul_pow
Nat
.
shiftLeft'_tt_eq_mul_pow
Nat
.
shiftLeft'_ne_zero_left
Nat
.
shiftLeft'_tt_ne_zero
Nat
.
size_zero
Nat
.
size_bit
Nat
.
size_one
Nat
.
size_shiftLeft'
Nat
.
size_shiftLeft
Nat
.
lt_size_self
Nat
.
size_le
Nat
.
lt_size
Nat
.
size_pos
Nat
.
size_eq_zero
Nat
.
size_pow
Nat
.
size_le_size
Nat
.
size_eq_bits_len
Lemmas about
size
.
shiftLeft
and
shiftRight
#
source
theorem
Nat
.
shiftLeft_eq_mul_pow
(m n :
ℕ
)
:
m
<<<
n
=
m
*
2
^
n
source
theorem
Nat
.
shiftLeft'_tt_eq_mul_pow
(m n :
ℕ
)
:
shiftLeft'
true
m
n
+
1
=
(
m
+
1
)
*
2
^
n
source
theorem
Nat
.
shiftLeft'_ne_zero_left
(b :
Bool
)
{m :
ℕ
}
(h :
m
≠
0
)
(n :
ℕ
)
:
shiftLeft'
b
m
n
≠
0
source
theorem
Nat
.
shiftLeft'_tt_ne_zero
(m :
ℕ
)
{n :
ℕ
}
:
n
≠
0
→
shiftLeft'
true
m
n
≠
0
size
#
source
@[simp]
theorem
Nat
.
size_zero
:
size
0
=
0
source
@[simp]
theorem
Nat
.
size_bit
{b :
Bool
}
{n :
ℕ
}
(h :
bit
b
n
≠
0
)
:
(
bit
b
n
)
.
size
=
n
.
size
.
succ
source
@[simp]
theorem
Nat
.
size_one
:
size
1
=
1
source
@[simp]
theorem
Nat
.
size_shiftLeft'
{b :
Bool
}
{m n :
ℕ
}
(h :
shiftLeft'
b
m
n
≠
0
)
:
(
shiftLeft'
b
m
n
)
.
size
=
m
.
size
+
n
source
@[simp]
theorem
Nat
.
size_shiftLeft
{m :
ℕ
}
(h :
m
≠
0
)
(n :
ℕ
)
:
(
m
<<<
n
).
size
=
m
.
size
+
n
source
theorem
Nat
.
lt_size_self
(n :
ℕ
)
:
n
<
2
^
n
.
size
source
theorem
Nat
.
size_le
{m n :
ℕ
}
:
m
.
size
≤
n
↔
m
<
2
^
n
source
theorem
Nat
.
lt_size
{m n :
ℕ
}
:
m
<
n
.
size
↔
2
^
m
≤
n
source
theorem
Nat
.
size_pos
{n :
ℕ
}
:
0
<
n
.
size
↔
0
<
n
source
theorem
Nat
.
size_eq_zero
{n :
ℕ
}
:
n
.
size
=
0
↔
n
=
0
source
theorem
Nat
.
size_pow
{n :
ℕ
}
:
(
2
^
n
).
size
=
n
+
1
source
theorem
Nat
.
size_le_size
{m n :
ℕ
}
(h :
m
≤
n
)
:
m
.
size
≤
n
.
size
source
theorem
Nat
.
size_eq_bits_len
(n :
ℕ
)
:
n
.
bits
.
length
=
n
.
size