Theorems |
BOUNDS_DIVIDED : !p. (?b. !n. p n <= b) <=> (?a b. !n. n * p n <= a * n + b)BOUNDS_LINEAR : !a b c. (!n. a * n <= b * n + c) <=> a <= bBOUNDS_LINEAR_0 : !a b. (!n. a * n <= b) <=> a = 0BOUNDS_NOTZERO : !p a b.
p 0 0 = 0 /\ (!m n. p m n <= a * (m + n) + b)
==> (?c. !m n. p m n <= c * (m + n))EQ_MULTL : !m n. m = m * n <=> m = 0 \/ n = 1EQ_MULTR : !m n. m = n * m <=> m = 0 \/ n = 1EQ_MULT_LCANCEL : !m n p. m * n = m * p <=> m = 0 \/ n = pEQ_MULT_RCANCEL : !m n p. m * p = n * p <=> m = n \/ p = 0LEFT_ADD_DISTRIB : !m n p. m * (n + p) = m * n + m * pLEFT_SUB_DISTRIB : !m n p. p <= n ==> m * (n - p) = m * n - m * pLE_MULT2 : !m n p q. m <= n /\ p <= q ==> m * p <= n * qLE_MULT_LCANCEL : !m n p. m * n <= m * p <=> m = 0 \/ n <= pLE_MULT_RCANCEL : !m n p. m * p <= n * p <=> m <= n \/ p = 0LE_SQUARE_REFL : !n. n <= n * nLT_LMULT : !m n p. ~(m = 0) /\ n < p ==> m * n < m * pLT_MULT : !m n. 0 < m * n <=> 0 < m /\ 0 < nLT_MULT2 : !m n p q. m < n /\ p < q ==> m * p < n * qLT_MULT_LCANCEL : !m n p. m * n < m * p <=> ~(m = 0) /\ n < pLT_MULT_RCANCEL : !m n p. m * p < n * p <=> m < n /\ ~(p = 0)MULTL_EQ : !m n. m * n = m <=> m = 0 \/ n = 1MULTR_EQ : !m n. n * m = m <=> m = 0 \/ n = 1MULT_0 : !m. m * 0 = 0MULT_1 : !m. m * 1 = mMULT_2 : !n. 2 * n = n + nMULT_ASSOC : !m n p. m * n * p = (m * n) * pMULT_EQ_0 : !m n. m * n = 0 <=> m = 0 \/ n = 0MULT_EQ_1 : !m n. m * n = 1 <=> m = 1 /\ n = 1MULT_LASSOC : !m n p. m * n * p = n * m * pMULT_SUC : !m n. m * SUC n = m + m * nMULT_SYM : !m n. m * n = n * mONE_MULT : !m. 1 * m = mRIGHT_ADD_DISTRIB : !m n p. (m + n) * p = m * p + n * pRIGHT_SUB_DISTRIB : !m n p. n <= m ==> (m - n) * p = m * p - n * p |