- BV_LESS_2
-
|- !x. BV x < 2
- BNVAL_NVAL
-
|- !w. BNVAL w = NVAL BV 2 w
- BNVAL0
-
|- BNVAL (WORD []) = 0
- BNVAL_11
-
|- !w1 w2. (WORDLEN w1 = WORDLEN w2) ==> (BNVAL w1 = BNVAL w2) ==> (w1 = w2)
- BNVAL_ONTO
-
|- !w. ?n. BNVAL w = n
- BNVAL_MAX
-
|- !n. !w ::(PWORDLEN n). BNVAL w < 2 EXP n
- BNVAL_WCAT1
-
|- !n. !w ::(PWORDLEN n). !x. BNVAL (WCAT (w,WORD [x])) = BNVAL w * 2 + BV x
- BNVAL_WCAT2
-
|- !n.
!w ::(PWORDLEN n).
!x. BNVAL (WCAT (WORD [x],w)) = BV x * 2 EXP n + BNVAL w
- BNVAL_WCAT
-
|- !n m.
!w1 ::(PWORDLEN n).
!w2 ::(PWORDLEN m).
BNVAL (WCAT (w1,w2)) = BNVAL w1 * 2 EXP m + BNVAL w2
- NBWORD0
-
|- !m. NBWORD 0 m = WORD []
- WORDLEN_NBWORD
-
|- !n m. WORDLEN (NBWORD n m) = n
- PWORDLEN_NBWORD
-
|- !n m. PWORDLEN n (NBWORD n m)
- NBWORD_SUC
-
|- !n m. NBWORD (SUC n) m = WCAT (NBWORD n (m DIV 2),WORD [VB (m MOD 2)])
- VB_BV
-
|- !x. VB (BV x) = x
- BV_VB
-
|- !x. x < 2 ==> (BV (VB x) = x)
- NBWORD_BNVAL
-
|- !n. !w ::(PWORDLEN n). NBWORD n (BNVAL w) = w
- BNVAL_NBWORD
-
|- !n m. m < 2 EXP n ==> (BNVAL (NBWORD n m) = m)
- ZERO_WORD_VAL
-
|- !n. !w ::(PWORDLEN n). (w = NBWORD n 0) = BNVAL w = 0
- WCAT_NBWORD_0
-
|- !n1 n2. WCAT (NBWORD n1 0,NBWORD n2 0) = NBWORD (n1 + n2) 0
- WSPLIT_NBWORD_0
-
|- !n m. m <= n ==> (WSPLIT m (NBWORD n 0) = (NBWORD (n - m) 0,NBWORD m 0))
- EQ_NBWORD0_SPLIT
-
|- !n.
!w ::(PWORDLEN n).
!m.
m <= n ==>
((w = NBWORD n 0) =
(WSEG (n - m) m w = NBWORD (n - m) 0) /\ (WSEG m 0 w = NBWORD m 0))
- NBWORD_MOD
-
|- !n m. NBWORD n (m MOD 2 EXP n) = NBWORD n m
- WSEG_NBWORD_SUC
-
|- !n m. WSEG n 0 (NBWORD (SUC n) m) = NBWORD n m
- NBWORD_SUC_WSEG
-
|- !n. !w ::(PWORDLEN (SUC n)). NBWORD n (BNVAL w) = WSEG n 0 w
- DOUBL_EQ_SHL
-
|- !n.
0 < n ==>
(!w ::(PWORDLEN n).
!b. NBWORD n (BNVAL w + BNVAL w + BV b) = SND (SHL F w b))
- MSB_NBWORD
-
|- !n m. BIT n (NBWORD (SUC n) m) = VB ((m DIV 2 EXP n) MOD 2)
- NBWORD_SPLIT
-
|- !n1 n2 m.
NBWORD (n1 + n2) m = WCAT (NBWORD n1 (m DIV 2 EXP n2),NBWORD n2 m)
- WSEG_NBWORD
-
|- !m k n.
m + k <= n ==> (!l. WSEG m k (NBWORD n l) = NBWORD m (l DIV 2 EXP k))
- NBWORD_SUC_FST
-
|- !n m.
NBWORD (SUC n) m = WCAT (WORD [VB ((m DIV 2 EXP n) MOD 2)],NBWORD n m)
- BIT_NBWORD0
-
|- !k n. k < n ==> (BIT k (NBWORD n 0) = F)
- ADD_BNVAL_LEFT
-
|- !n.
!w1 w2 ::(PWORDLEN (SUC n)).
BNVAL w1 + BNVAL w2 =
(BV (BIT n w1) + BV (BIT n w2)) * 2 EXP n +
BNVAL (WSEG n 0 w1) +
BNVAL (WSEG n 0 w2)
- ADD_BNVAL_RIGHT
-
|- !n.
!w1 w2 ::(PWORDLEN (SUC n)).
BNVAL w1 + BNVAL w2 =
(BNVAL (WSEG n 1 w1) + BNVAL (WSEG n 1 w2)) * 2 +
BV (BIT 0 w1) +
BV (BIT 0 w2)
- ADD_BNVAL_SPLIT
-
|- !n1 n2.
!w1 w2 ::(PWORDLEN (n1 + n2)).
BNVAL w1 + BNVAL w2 =
(BNVAL (WSEG n1 n2 w1) + BNVAL (WSEG n1 n2 w2)) * 2 EXP n2 +
BNVAL (WSEG n2 0 w1) +
BNVAL (WSEG n2 0 w2)