Entry |
Value |
Name |
natural-bits_192 |
Conclusion |
!n i. i < n ==> (?r. random_uniform_loop n (bit_width (n - 1)) r = i) |
Constructive Proof |
No |
Axiom |
!t. t \/ ~t
(\a. a = (\b. (\c. c) = (\c. c))) (\d. (\e. d e) = d)
(\a. a = (\b. (\c. c) = (\c. c)))
(\d. (\e. e = (\f. (\c. c) = (\c. c)))
(\g. (\h i.
(\j k.
(\l. l j k) =
(\m. m ((\c. c) = (\c. c)) ((\c. c) = (\c. c))))
h
i <=>
h)
(d g)
(d ((@) d))))
(\a. (\b. b = (\c. (\d. d) = (\d. d)))
(\e. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
((\l. l = (\m. (\d. d) = (\d. d)))
(\n. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
(a n)
e))
e))
(\p. (\h i. (\j. j h i) = (\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
((\q. q = (\r. (\d. d) = (\d. d)))
(\s. (\q. q = (\r. (\d. d) = (\d. d)))
(\t. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
(p s = p t)
(s = t))))
((\u. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
u
((\b. b = (\c. (\d. d) = (\d. d))) (\d. d)))
((\q. q = (\r. (\d. d) = (\d. d)))
(\v. (\w. (\b. b = (\c. (\d. d) = (\d. d)))
(\x. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
((\q. q = (\r. (\d. d) = (\d. d)))
(\y. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d))
((\d. d) = (\d. d))))
f
g <=>
f)
(w y)
x))
x))
(\z. v = p z))))) |
Classical Lemmas |
!a b a' b'. a,b = a',b' <=> a = a' /\ b = b'!a b. FST (a,b) = a!a b. SND (a,b) = b!e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n)!a n. snth (sreplicate a) n = a!t1 t2. ~(t1 /\ t2) <=> ~t1 \/ ~t2!t1 t2. ~(t1 ==> t2) <=> t1 /\ ~t2!t1 t2. ~(t1 \/ t2) <=> ~t1 /\ ~t2!t1 t2. ~t1 ==> ~t2 <=> t2 ==> t1!b. ?r. random_bit r <=> b!t. ~ ~t <=> t!t. (t <=> T) \/ (t <=> F)!f n x. funpow f (SUC n) x = funpow f n (f x)!f m n. funpow f (m + n) = funpow f m o funpow f n!f n. funpow f (SUC n) = funpow f n o f!f. funpow f 1 = f!p c x y. p (if c then x else y) <=> (c ==> p x) /\ (~c ==> p y)!p q. (!x. p x \/ q) <=> (!x. p x) \/ q!p q. (!x. p x) \/ q <=> (!x. p x \/ q)!p. (?x. ~p x) <=> ~(!x. p x)!p. ~(!x. p x) <=> (?x. ~p x)!p. ~(?x. p x) <=> (!x. ~p x)!f. ?fn. !a b. fn (a,b) = f a b!p n. p n /\ (!m. m < n ==> ~p m) ==> (minimal) p = n!p. (?n. p n) <=> (?n. p n /\ (!m. m < n ==> ~p m))!p. (?n. p n) <=> p ((minimal) p) /\ (!m. m < (minimal) p ==> ~p m)!p. (!n. (!m. m < n ==> p m) ==> p n) ==> (!n. p n)!k p. 1 < k /\ p 0 /\ (!n. ~(n = 0) /\ p (n DIV k) ==> p n) ==> (!n. p n)!n l. LENGTH l = n ==> (?r. random_bits n r = l)!m n q r. m = q * n + r /\ r < n ==> m DIV n = q!m n q r. m = q * n + r /\ r < n ==> m MOD n = r!m n p q. m = n + q * p ==> m MOD p = n MOD p!m n p. m * p < n * p <=> m < n /\ ~(p = 0)!m n p. m * n < m * p <=> ~(m = 0) /\ n < p!m n p. m + n < m + p <=> n < p!x m n. x EXP m < x EXP n <=> 2 <= x /\ m < n \/ x = 0 /\ ~(m = 0) /\ n = 0!m n p. m * p <= n * p <=> m <= n \/ p = 0!m n p. m * n <= m * p <=> m = 0 \/ n <= p!m n p. n + m <= p + m <=> n <= p!m n p. m + n <= m + p <=> n <= p!x m n.
x EXP m <= x EXP n <=>
(if x = 0 then m = 0 ==> n = 0 else x = 1 \/ m <= n)!m n p. m * p = n * p <=> m = n \/ p = 0!m n p. m * n = m * p <=> m = 0 \/ n = p!p m n. m + p = n + p <=> m = n!m n p. m + n = m + p <=> n = p!n k i. bit_nth n (k + i) <=> bit_nth (bit_shr n k) i!m n p. m * n * p = n * m * p!m n p. m * n * p = (m * n) * p!m n p. m * (n + p) = m * n + m * p!m n p. (m + n) * p = m * p + n * p!n k1 k2. bit_shr n (k1 + k2) = bit_shr (bit_shr n k1) k2!a b n.
~(n = 0)
==> ((a + b) MOD n = a MOD n + b MOD n <=>
(a + b) DIV n = a DIV n + b DIV n)!a b n. ~(a = 0) ==> (n <= b DIV a <=> a * n <= b)!n a b. ~(n = 0) ==> (a MOD n + b MOD n) MOD n = (a + b) MOD n!m n p. ~(n * p = 0) ==> m DIV n DIV p = m DIV (n * p)!m n p. ~(n * p = 0) ==> m MOD (n * p) MOD n = m MOD n!m n p. m < n /\ n <= p ==> m < p!k n m.
1 < k /\ ~(n = 0) ==> (log k n = m <=> k EXP m <= n /\ n < k EXP (m + 1))!k n1 n2. 1 < k /\ ~(n1 = 0) /\ n1 <= n2 ==> log k n1 <= log k n2!k m n. 1 < k /\ k EXP m <= n ==> m <= log k n!m n p. m <= n /\ n < p ==> m < p!m n p. m <= n /\ n <= p ==> m <= p!k n m. k EXP m <= n /\ n < k EXP (m + 1) ==> log k n = m!n k. bit_width (bit_bound n k) <= k!m n. n * m DIV n <= m!m n. EVEN (m * n) <=> EVEN m \/ EVEN n!m n. EVEN (m + n) <=> EVEN m <=> EVEN n!m n. ODD (m * n) <=> ODD m /\ ODD n!m n. ODD (m + n) <=> ~(ODD m <=> ODD n)!n1 n2. bit_hd (n1 * n2) <=> bit_hd n1 /\ bit_hd n2!n1 n2. bit_hd (n1 + n2) <=> ~(bit_hd n1 <=> bit_hd n2)!m n. ~(m < n) <=> n <= m!m n. ~(m <= n) <=> n < m!m n. m <= n /\ n <= m <=> m = n!m n. m < n <=> (?d. n = m + SUC d)!m n. m < m + n <=> 0 < n!n x. 0 < x EXP n <=> ~(x = 0) \/ n = 0!m n. SUC m < SUC n <=> m < n!m n. m <= n <=> (?d. n = m + d)!m n. m <= n <=> m < n \/ m = n!m n. SUC m <= n <=> m < n!m n. SUC m <= SUC n <=> m <= n!m n. SUC m = SUC n <=> m = n!m n. m * n = 0 <=> m = 0 \/ n = 0!m n. m * n = 1 <=> m = 1 /\ n = 1!m n. m + n = n <=> m = 0!m n. m + n = m <=> n = 0!m n. m + n = 0 <=> m = 0 /\ n = 0!m n. m EXP n = 0 <=> m = 0 /\ ~(n = 0)!x n. x EXP n = 1 <=> x = 1 \/ n = 0!n i. bit_nth n (SUC i) <=> bit_nth (bit_tl n) i!m n. LENGTH (interval m n) = n!n k. bits_to_num (num_to_bitvec n k) = bit_bound n k!m n. m * n = n * m!m n. (!i. bit_nth m i <=> bit_nth n i) ==> m = n!m n. ~(n = 0) ==> m MOD n < n!m n. ~(n = 0) ==> (m DIV n = 0 <=> m < n)!m n. ~(n = 0) ==> (m MOD n = 0 <=> (?q. m = q * n))!m n. ~(n = 0) ==> m DIV n * n + m MOD n = m!m n. ~(m = 0) ==> (m * n) DIV m = n!m n. ~(m = 0) ==> (m * n) MOD m = 0!n m. ~(n = 0) ==> m MOD n MOD n = m MOD n!k n. 1 < k /\ ~(n = 0) ==> n < k EXP (log k n + 1)!k n. 1 < k /\ ~(n = 0) ==> k EXP log k n <= n!k n. 1 < k /\ ~(n = 0) ==> (log k n = 0 <=> n < k)!k n.
1 < k /\ ~(n = 0)
==> log k n = (if n < k then 0 else log k (n DIV k) + 1)!k n. 1 < k /\ ~(n = 0) /\ n < k ==> log k n = 0!n i. i < n ==> (?r. random_uniform_loop n (bit_width (n - 1)) r = i)!m n. m < n ==> m DIV n = 0!k n. 1 < k ==> (?m. n <= k EXP m)!n i. bit_nth n i ==> i < bit_width n!m n. m <= n \/ n <= m!n. EVEN (2 * n)!n. ODD (SUC (2 * n))!n. ~(n < n)!n. ~(SUC n = _0)!n. n <= SUC n!n. EVEN n <=> (?m. n = 2 * m)!n. EVEN n <=> n MOD 2 = 0!n. ODD n <=> n MOD 2 = 1!n. 0 < n <=> ~(n = 0)!n. bit_nth (bit_tl n) = bit_nth n o SUC!n. BIT0 (SUC n) = SUC (SUC (BIT0 n))!m. SUC m = m + 1!n. bits_to_num (num_to_bits n) = n!m. m * 1 = m!n. 2 * n = n + n!m. 1 * m = m!n. SUC n - 1 = n!n. n DIV 1 = n!n. n EXP 1 = n!n. 0 EXP n = (if n = 0 then 1 else 0)!n. 1 EXP n = 1!n. ~(n = 0) ==> 0 DIV n = 0!k. 1 < k ==> log k 1 = 0!m. m = 0 \/ (?n. m = SUC n)!r1 r2. ?r. split_random r = r1,r2!s1 s2. ssplit (sinterleave s1 s2) = s1,s2BIT0 0 = 0 |
Constructive Lemmas |
T!x y z. x = y /\ y = z ==> x = z!t1 t2. (if F then t1 else t2) = t2!t1 t2. (if T then t1 else t2) = t1!x y. x = y <=> y = x!x y. x = y ==> y = x!a b a' b'. a,b = a',b' <=> a = a' /\ b = b'!a b. FST (a,b) = a!a b. SND (a,b) = b!e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n)!h t n. n < LENGTH t ==> nth (CONS h t) (SUC n) = nth t n!h t. HD (CONS h t) = h!h t. nth (CONS h t) 0 = h!h t. TL (CONS h t) = t!h t. LENGTH (CONS h t) = SUC (LENGTH t)!a n. snth (sreplicate a) n = a!a. ?x. x = a!a. ?!x. x = a!x. x = x!x. (@y. y = x) = x!x. I x = x!p1 p2 q1 q2. (p1 ==> p2) /\ (q1 ==> q2) ==> p1 /\ q1 ==> p2 /\ q2!p1 p2 q1 q2. (p1 ==> p2) /\ (q1 ==> q2) ==> p1 \/ q1 ==> p2 \/ q2!t1 t2 t3. (t1 /\ t2) /\ t3 <=> t1 /\ t2 /\ t3!t1 t2 t3. (t1 \/ t2) \/ t3 <=> t1 \/ t2 \/ t3!t1 t2. ~(t1 /\ t2) <=> ~t1 \/ ~t2!t1 t2. ~(t1 ==> t2) <=> t1 /\ ~t2!t1 t2. ~(t1 \/ t2) <=> ~t1 /\ ~t2!t1 t2. t1 /\ t2 <=> t2 /\ t1!t1 t2. ~t1 ==> ~t2 <=> t2 ==> t1!t1 t2. t1 \/ t2 <=> t2 \/ t1!p q. (?x. p /\ q x) <=> p /\ (?x. q x)!p q. p /\ (?x. q x) <=> (?x. p /\ q x)!p q. p \/ (?x. q x) <=> (?x. p \/ q x)!b. ?r. random_bit r <=> b!t. (!x. t) <=> t!t. (?x. t) <=> t!t. ~ ~t <=> t!t. F /\ t <=> F!t. T /\ t <=> t!t. t /\ F <=> F!t. t /\ T <=> t!t. t /\ t <=> t!t. (F <=> t) <=> ~t!t. (T <=> t) <=> t!t. (t <=> F) <=> ~t!t. (t <=> T) <=> t!t. F ==> t <=> T!t. T ==> t <=> t!t. t ==> F <=> ~t!t. t ==> T <=> T!t. F \/ t <=> t!t. T \/ t <=> T!t. t \/ F <=> t!t. t \/ T <=> T!t. t \/ t <=> t!t. t ==> t!t. (t <=> T) \/ (t <=> F)!f n x. funpow f (SUC n) x = funpow f n (f x)!f m n. funpow f (m + n) = funpow f m o funpow f n!f n. funpow f (SUC n) = f o funpow f n!f n. funpow f (SUC n) = funpow f n o f!f. funpow f 0 = I!f. funpow f 1 = f!f h t. MAP f (CONS h t) = CONS (f h) (MAP f t)!f y. (\x. f x) y = f y!f g. (!x. f x = g x) <=> f = g!f g. (!x. f x = g x) ==> f = g!f l. LENGTH (MAP f l) = LENGTH l!f. ONE_ONE f <=> (!x1 x2. f x1 = f x2 ==> x1 = x2)!f. ONTO f <=> (!y. ?x. y = f x)!f. f o I = f!f. I o f = f!t. (\x. t x) = t!f. MAP f [] = []!p a. (?x. a = x /\ p x) <=> p a!p x. (!y. p y <=> y = x) ==> (@) p = x!p x. p x ==> p ((@) p)!p c x y. p (if c then x else y) <=> (c ==> p x) /\ (~c ==> p y)!p q. (!x. p x \/ q) <=> (!x. p x) \/ q!p q. (?x. p x /\ q) <=> (?x. p x) /\ q!p q. (?x. p x) /\ q <=> (?x. p x /\ q)!p q. (?x. p x) ==> q <=> (!x. p x ==> q)!p q. (!x. p x) \/ q <=> (!x. p x \/ q)!p q. (?x. p x) \/ q <=> (?x. p x \/ q)!p q. (!x. p x /\ q x) <=> (!x. p x) /\ (!x. q x)!p q. (?x. p x \/ q x) <=> (?x. p x) \/ (?x. q x)!p q. (!x. p x) /\ (!x. q x) <=> (!x. p x /\ q x)!p q. (?x. p x) \/ (?x. q x) <=> (?x. p x \/ q x)!p q. (!x. p x ==> q x) ==> (?x. p x) ==> (?x. q x)!p. (?x. ~p x) <=> ~(!x. p x)!p. (?!x. p x) <=> (?x. !y. p y <=> x = y)!p. (?!x. p x) <=> (?x. p x) /\ (!x x'. p x /\ p x' ==> x = x')!p. ~(!x. p x) <=> (?x. ~p x)!p. ~(?x. p x) <=> (!x. ~p x)!f b h t. foldr f b (CONS h t) = f h (foldr f b t)!f b. foldr f b [] = b!f. ?fn. !a b. fn (a,b) = f a b!p. (!x y. p x y) <=> (!y x. p x y)!r. (!x. ?y. r x y) <=> (?f. !x. r x (f x))!p. (!x. ?!y. p x y) <=> (?f. !x y. p x y <=> f x = y)!f g x. (f o g) x = f (g x)!f g l. MAP (f o g) l = MAP f (MAP g l)!f g h. (f o g) o h = f o g o h!p. p [] /\ (!h t. p t ==> p (CONS h t)) ==> (!l. p l)!p n. p n /\ (!m. m < n ==> ~p m) ==> (minimal) p = n!p. (?n. p n) <=> (?n. p n /\ (!m. m < n ==> ~p m))!p. (?n. p n) <=> p ((minimal) p) /\ (!m. m < (minimal) p ==> ~p m)!p. (!n. (!m. m < n ==> p m) ==> p n) ==> (!n. p n)!p. p _0 /\ (!n. p n ==> p (SUC n)) ==> (!n. p n)!k p. 1 < k /\ p 0 /\ (!n. ~(n = 0) /\ p (n DIV k) ==> p n) ==> (!n. p n)!n l. LENGTH l = n ==> (?r. random_bits n r = l)!m n q r. m = q * n + r /\ r < n ==> m DIV n = q!m n q r. m = q * n + r /\ r < n ==> m MOD n = r!m n p q. m = n + q * p ==> m MOD p = n MOD p!m n p. m * p < n * p <=> m < n /\ ~(p = 0)!m n p. m * n < m * p <=> ~(m = 0) /\ n < p!m n p. m + n < m + p <=> n < p!x m n. x EXP m < x EXP n <=> 2 <= x /\ m < n \/ x = 0 /\ ~(m = 0) /\ n = 0!m n p. m * p <= n * p <=> m <= n \/ p = 0!m n p. m * n <= m * p <=> m = 0 \/ n <= p!m n p. n + m <= p + m <=> n <= p!m n p. m + n <= m + p <=> n <= p!x m n.
x EXP m <= x EXP n <=>
(if x = 0 then m = 0 ==> n = 0 else x = 1 \/ m <= n)!m n p. m * p = n * p <=> m = n \/ p = 0!m n p. m * n = m * p <=> m = 0 \/ n = p!p m n. m + p = n + p <=> m = n!m n p. m + n = m + p <=> n = p!n k i. bit_nth n (k + i) <=> bit_nth (bit_shr n k) i!m n p. m * n * p = n * m * p!m n p. m * n * p = (m * n) * p!m n p. m * (n + p) = m * n + m * p!m n p. (m + n) * p = m * p + n * p!m n p. m + n + p = (m + n) + p!n k1 k2. bit_shr n (k1 + k2) = bit_shr (bit_shr n k1) k2!a b n.
~(n = 0)
==> ((a + b) MOD n = a MOD n + b MOD n <=>
(a + b) DIV n = a DIV n + b DIV n)!a b n. ~(a = 0) ==> (n <= b DIV a <=> a * n <= b)!n a b. ~(n = 0) ==> (a MOD n + b MOD n) MOD n = (a + b) MOD n!m n p. ~(n * p = 0) ==> m DIV n DIV p = m DIV (n * p)!m n p. ~(n * p = 0) ==> m MOD (n * p) MOD n = m MOD n!m n p. m < n /\ n <= p ==> m < p!k n m.
1 < k /\ ~(n = 0) ==> (log k n = m <=> k EXP m <= n /\ n < k EXP (m + 1))!k n1 n2. 1 < k /\ ~(n1 = 0) /\ n1 <= n2 ==> log k n1 <= log k n2!k m n. 1 < k /\ k EXP m <= n ==> m <= log k n!m n p. m <= n /\ n < p ==> m < p!m n p. m <= n /\ n <= p ==> m <= p!k n m. k EXP m <= n /\ n < k EXP (m + 1) ==> log k n = m!m n. m <= m + n!n k. bit_width (bit_bound n k) <= k!m n. n * m DIV n <= m!m n. EVEN (m * n) <=> EVEN m \/ EVEN n!m n. EVEN (m + n) <=> EVEN m <=> EVEN n!m n. ODD (m * n) <=> ODD m /\ ODD n!m n. ODD (m + n) <=> ~(ODD m <=> ODD n)!n1 n2. bit_hd (n1 * n2) <=> bit_hd n1 /\ bit_hd n2!n1 n2. bit_hd (n1 + n2) <=> ~(bit_hd n1 <=> bit_hd n2)!m n. ~(m < n) <=> n <= m!m n. ~(m <= n) <=> n < m!m n. m <= n /\ n <= m <=> m = n!m n. m < n <=> (?d. n = m + SUC d)!m n. m < SUC n <=> m <= n!m n. m < SUC n <=> m = n \/ m < n!m n. m < m + n <=> 0 < n!n x. 0 < x EXP n <=> ~(x = 0) \/ n = 0!m n. SUC m < SUC n <=> m < n!m n. m <= n <=> (?d. n = m + d)!m n. m <= n <=> m < n \/ m = n!m n. m <= SUC n <=> m = SUC n \/ m <= n!m n. SUC m <= n <=> m < n!m n. SUC m <= SUC n <=> m <= n!m n. SUC m = SUC n <=> m = n!m n. m * n = 0 <=> m = 0 \/ n = 0!m n. m * n = 1 <=> m = 1 /\ n = 1!m n. m + n = n <=> m = 0!m n. m + n = m <=> n = 0!m n. m + n = 0 <=> m = 0 /\ n = 0!m n. m EXP n = 0 <=> m = 0 /\ ~(n = 0)!x n. x EXP n = 1 <=> x = 1 \/ n = 0!n i. bit_nth n i <=> bit_hd (bit_shr n i)!n i. bit_nth n (SUC i) <=> bit_nth (bit_tl n) i!n k. num_to_bitvec n (SUC k) = CONS (bit_hd n) (num_to_bitvec (bit_tl n) k)!m n. MAP SUC (interval m n) = interval (SUC m) n!m n. interval m (SUC n) = CONS m (interval (SUC m) n)!m n. LENGTH (interval m n) = n!n k. bits_to_num (num_to_bitvec n k) = bit_bound n k!m n. m * n = n * m!m n. m * SUC n = m + m * n!m n. SUC m * n = m * n + n!m n. m + n = n + m!m n. m + SUC n = SUC (m + n)!m n. SUC m + n = SUC (m + n)!m n. (m + n) - n = m!m n. m EXP SUC n = m * m EXP n!m n. (!i. bit_nth m i <=> bit_nth n i) ==> m = n!m n. ~(n = 0) ==> m MOD n < n!m n. ~(n = 0) ==> (m DIV n = 0 <=> m < n)!m n. ~(n = 0) ==> (m MOD n = 0 <=> (?q. m = q * n))!m n. ~(n = 0) ==> m DIV n * n + m MOD n = m!m n. ~(m = 0) ==> (m * n) DIV m = n!m n. ~(m = 0) ==> (m * n) MOD m = 0!n m. ~(n = 0) ==> m MOD n MOD n = m MOD n!k n. 1 < k /\ ~(n = 0) ==> n < k EXP (log k n + 1)!k n. 1 < k /\ ~(n = 0) ==> k EXP log k n <= n!k n. 1 < k /\ ~(n = 0) ==> (log k n = 0 <=> n < k)!k n.
1 < k /\ ~(n = 0)
==> log k n = (if n < k then 0 else log k (n DIV k) + 1)!k n. 1 < k /\ ~(n = 0) /\ n < k ==> log k n = 0!n i. i < n ==> (?r. random_uniform_loop n (bit_width (n - 1)) r = i)!m n. m < n ==> m DIV n = 0!k n. 1 < k ==> (?m. n <= k EXP m)!n i. bit_nth n i ==> i < bit_width n!m n. m <= n \/ n <= m!n. EVEN (2 * n)!n. ODD (SUC (2 * n))!n. ~(n < n)!m. ~(m < 0)!n. ~(SUC n = _0)!n. n < SUC n!n. 0 < SUC n!n. n <= n!n. n <= SUC n!n. 0 <= n!n. EVEN n <=> (?m. n = 2 * m)!n. EVEN n <=> n MOD 2 = 0!n. EVEN (SUC n) <=> ~EVEN n!n. ODD n <=> n MOD 2 = 1!n. ODD (SUC n) <=> ~ODD n!n. bit_hd n <=> ODD n!n. bit_hd (SUC n) <=> ~bit_hd n!n. ~EVEN n <=> ODD n!n. ~ODD n <=> EVEN n!n. 0 < n <=> ~(n = 0)!m. m <= 0 <=> m = 0!n. bit_nth (bit_tl n) = bit_nth n o SUC!n. num_to_bits n = num_to_bitvec n (bit_width n)!m. interval m 0 = []!n. BIT0 (SUC n) = SUC (SUC (BIT0 n))!n. BIT1 n = SUC (BIT0 n)!n. PRE (SUC n) = n!m. SUC m = m + 1!n. bits_to_num (num_to_bits n) = n!m. m * 0 = 0!m. m * 1 = m!n. 0 * n = 0!n. 2 * n = n + n!m. 1 * m = m!m. m + 0 = m!n. 0 + n = n!n. SUC n - 1 = n!n. n DIV 1 = n!m. m EXP 0 = 1!n. n EXP 1 = n!n. 0 EXP n = (if n = 0 then 1 else 0)!n. 1 EXP n = 1!n. ~(n = 0) ==> 0 DIV n = 0!k. 1 < k ==> log k 1 = 0!n. EVEN n \/ ODD n!m. m = 0 \/ (?n. m = SUC n)!x. ?a b. x = a,b!r1 r2. ?r. split_random r = r1,r2!s1 s2. ssplit (sinterleave s1 s2) = s1,s2!s. shd s = snth s 0!s. stream (snth s) = s!s. dest_random (mk_random s) = s?f. ONE_ONE f /\ ~ONTO fEVEN 0~ODD 0F <=> (!p. p)T <=> (\p. p) = (\p. p)~F <=> T~T <=> FI = (\x. x)sreplicate = siterate I(~) = (\p. p ==> F)COND = (\t t1 t2. @x. ((t <=> T) ==> x = t1) /\ ((t <=> F) ==> x = t2))(/\) = (\p q. (\f. f p q) = (\f. f T T))(==>) = (\p q. p /\ q <=> p)(\/) = (\p q. !r. (p ==> r) ==> (q ==> r) ==> r)(!) = (\p. p = (\x. T))(?) = (\p. !q. (!x. p x ==> q) ==> q)(?) = (\p. p ((@) p))(?!) = (\p. (?) p /\ (!x y. p x /\ p y ==> x = y))(o) = (\f g x. f (g x))random_bits = random_vector random_bitNUMERAL = (\n. n)BIT0 0 = 0LENGTH [] = 0 |
Contained Package |
natural-bits |
Comment |
Probability package from OpenTheory. |