| THM | id_increasing |  k:  . increasing(  i.i;k) | 
| THM | increasing_implies |  k:  , f:(  k    ). increasing(f;k)   (  x,y:  k. x<y   f(x)<f(y)) | 
| THM | compose_increasing |  k,m:  , f:(  k    m), g:(  m    ). increasing(f;k)   increasing(g;m)   increasing(g o f;k) | 
| THM | increasing_inj |  k,m:  , f:(  k    m). increasing(f;k)   Inj(  k;  m; f) | 
| THM | increasing_le |  k,m:  . (  f:(  k    m). increasing(f;k))   k  m | 
| THM | increasing_is_id |  k:  , f:(  k    k). increasing(f;k)   (  i:  k. f(i) = i) | 
| THM | increasing_lower_bound |  k:  , f:(  k    ), x:  k. increasing(f;k)   f(0)+x  f(x) | 
| THM | injection_le |  k,m:  . (  f:(  k    m). Inj(  k;  m; f))   k  m | 
| THM | disjoint_increasing_onto |  m,n,k:  , f:(  n    m), g:(  k    m). increasing(f;n)    increasing(g;k)    (  i:  m. (  j:  n. i = f(j))  (  j:  k. i = g(j)))    (  j1:  n, j2:  k.  f(j1) = g(j2))   m = n+k    | 
| THM | bijection_restriction |  k:  , f:(  k    k). 0<k    Bij(  k;  k; f)   f(k-1) = k-1   f    (k-1)    (k-1) & Bij(  (k-1);  (k-1); f) | 
| def | primrec |  0  b else c(n-1,primrec(n-1;b;c)) fi  (recursive) | 
| THM | primrec_add |  n,m:  , b:T, c:(  (n+m)   T   T). primrec(n+m;b;c) = primrec(n;primrec(m;b;c);  i,t. c(i+m,t)) | 
| def | nondecreasing |  i:  (k-1). f(i)  f(i+1) | 
| THM | const_nondecreasing |  k:  , x:  . nondecreasing(  i.x;k) | 
| def | fadd |  | 
| THM | fadd_increasing |  n:  , f,g:(  n    ). increasing(f;n)   nondecreasing(g;n)   increasing(fadd(f;g);n) | 
| def | fappend |  n  x else f(i) fi | 
| THM | increasing_split |  m:  , P:(  m   Prop). (  i:  m. Dec(P(i)))    (  n,k:  , f:(  n    m), g:(  k    m). (increasing(f;n) (& increasing(g;k) (& (  i:  n. P(f(i))) (& (  j:  k.  P(g(j))) (& (  i:  m. (  j:  n. i = f(j))  (  j:  k. i = g(j)))) | 
| def | sum |  x,n. n+f(x)) | 
| THM | non_neg_sum |  n:  , f:(  n    ). (  x:  n. 0  f(x))   0  sum(f(x) | x < n) | 
| THM | sum_linear |  n:  , f,g:(  n    ). sum(f(x) | x < n)+sum(g(x) | x < n) = sum(f(x)+g(x) | x < n) | 
| THM | sum_constant |  n:  , a:  . sum(a | x < n) = a  n | 
| THM | sum_functionality |  n:  , f,g:(  n    ). (  i:  n. f(i) = g(i))   sum(f(x) | x < n) = sum(g(x) | x < n) | 
| THM | sum_difference |  n:  , f,g:(  n    ), d:  . sum(f(x)-g(x) | x < n) = d   sum(f(x) | x < n) = sum(g(x) | x < n)+d | 
| THM | sum_le |  k:  , f,g:(  k    ). (  x:  k. f(x)  g(x))   sum(f(x) | x < k)  sum(g(x) | x < k) | 
| THM | sum_bound |  k,b:  , f:(  k    ). (  x:  k. f(x)  b)   sum(f(x) | x < k)  b  k | 
| THM | sum_lower_bound |  k,b:  , f:(  k    ). (  x:  k. b  f(x))   b  k  sum(f(x) | x < k) | 
| THM | sum-ite |  k:  , f,g:(  k    ), p:(  k    ). sum(if p(i)  f(i)+g(i) else f(i) fi | i < k) = sum(f(i) | i < k)+sum(if p(i)  g(i) else 0 fi | i < k) | 
| THM | isolate_summand |  n:  , f:(  n    ), m:  n. sum(f(x) | x < n) = f(m)+sum(if x=  m  0 else f(x) fi | x < n) | 
| THM | empty_support |  n:  , f:(  n    ). (  x:  n. f(x) = 0)   sum(f(x) | x < n) = 0 | 
| THM | singleton_support_sum |  n:  , f:(  n    ), m:  n. (  x:  n.  x = m   f(x) = 0)   sum(f(x) | x < n) = f(m) | 
| THM | finite-partition |  n,k:  , c:(  n    k).  p:(  k   (  List)). sum(||p(j)|| | j < k) = n & (  j:  k, x,y:  ||p(j)||. x<y   (p(j))[x]>(p(j))[y]) & (  j:  k, x:  ||p(j)||. (p(j))[x]<n & c((p(j))[x]) = j) | 
| THM | pigeon-hole |  n,m:  , f:(  n    m). Inj(  n;  m; f)   n  m | 
| THM | pair_support |  n:  , f:(  n    ), m,k:  n.  m = k   (  x:  n.  x = m     x = k   f(x) = 0)   sum(f(x) | x < n) = f(m)+f(k) | 
| THM | sum_split |  n:  , f:(  n    ), m:  (n+1). sum(f(x) | x < n) = sum(f(x) | x < m)+sum(f(x+m) | x < n-m) | 
| def | double_sum |  | 
| THM | pair_support_double_sum |  n,m:  , f:(  n    m    ), x1,x2:  n, y1,y2:  m.  x1 = x2    y1 = y2    (  x:  n, y:  m.  (x = x1 & y = y1)     (x = x2 & y = y2)   f(x,y) = 0)    sum(f(x,y) | x < n; y < m) = f(x1,y1)+f(x2,y2) | 
| THM | double_sum_difference |  n,m:  , f,g:(  n    m    ), d:  . sum(f(x,y)-g(x,y) | x < n; y < m) = d    sum(f(x,y) | x < n; y < m) = sum(g(x,y) | x < n; y < m)+d | 
| THM | double_sum_functionality |  n,m:  , f,g:(  n    m    ). (  x:  n, y:  m. f(x,y) = g(x,y))    sum(f(x,y) | x < n; y < m) = sum(g(x,y) | x < n; y < m) | 
| def | rel_exp |  0    x,y. x = y  T else  x,y.  z:T. (x R z) & (z R^n-1 y) fi (recursive) | 
| THM | decidable__rel_exp |  k,n:  , R:(  n    n   Prop). (  i,j:  n. Dec(i R j))   (  i,j:  n. Dec(i R^k j)) | 
| THM | rel_exp_add |  R:(T   T   Prop), m,n:  , x,y,z:T. (x R^m y)   (y R^n z)   (x R^m+n z) | 
| def | rel_implies |  x,y:T. (x R1 y)   (x R2 y) | 
| THM | rel_exp_monotone |  n:  , T:Type, R1,R2:(T   T   Prop). R1 => R2   R1^n => R2^n | 
| def | preserved_by |  x,y:T. P(x)   (x R y)   P(y) | 
| THM | preserved_by_monotone |  P:(T   Prop), R1,R2:(T   T   Prop). (  x,y:T. (x R1 y)   (x R2 y))   R2 preserves P   R1 preserves P | 
| def | rel_star |  n:  . x R^n y | 
| THM | rel_star_monotone |  R1,R2:(T   T   Prop). R1 => R2   R1^* => R2^* | 
| THM | rel_star_transitivity |  R:(T   T   Prop), x,y,z:T. (x (R^*) y)   (y (R^*) z)   (x (R^*) z) | 
| THM | rel_star_monotonic |  R1,R2:(T   T   Prop), x,y:T. R1 => R2   (x (R1^*) y)   (x (R2^*) y) | 
| THM | preserved_by_star |  P:(T   Prop), R:(T   T   Prop). R preserves P   R^* preserves P | 
| THM | rel_star_closure |  R,R2:(T   T   Prop). Trans(T)(R2(_1,_2))    (  x,y:T. (x R y)   (x R2 y))   (  x,y:T. (x (R^*) y)   (x R2 y)  x = y) | 
| THM | rel_star_of_equiv |  E:(T   T   Prop), x,y:T. EquivRel(T)(_1 E _2)   (x (E^*) y)   (x E y) | 
| THM | rel_rel_star |  R:(T   T   Prop), x,y:T. (x R y)   (x (R^*) y) | 
| THM | rel_star_trans |  R:(T   T   Prop), x,y,z:T. (x R y)   (y (R^*) z)   (x (R^*) z) | 
| THM | rel_star_weakening |  x,y:T, R:(T   T   Prop). x = y   (x (R^*) y) | 
| def | rel_inverse |  | 
| THM | rel_inverse_exp |  R:(T   T   Prop), n:  , x,y:T. (x R^n^-1 y)   (x R^-1^n y) | 
| THM | rel_inverse_star |  R:(T   T   Prop), x,y:T. (x R^*^-1 y)   (x (R^-1^*) y) | 
| THM | rel_star_symmetric |  R:(T   T   Prop). (Sym x,y:T. x R y)   (Sym x,y:T. x (R^*) y) | 
| def | rel_or |  R2)(x,y) == (x R1 y)  (x R2 y) | 
| THM | symmetric_rel_or |  R1,R2:(T   T   Prop). (Sym x,y:T. x R1 y)   (Sym x,y:T. x R2 y)   (Sym x,y:T. x (R1  R2) y) | 
| THM | preserved_by_or |  P:(T   Prop), R1,R2:(T   T   Prop). R1 preserves P   R2 preserves P   R1  R2 preserves P | 
| def | fun_exp |  x.x;  i,g. f o g) | 
| THM | fun_exp_compose |  n:  , h,f:(T   T). f^n o h = primrec(n;h;  i,g. f o g) | 
| THM | fun_exp_add |  n,m:  , f:(T   T). f^n+m = f^n o f^m | 
| THM | fun_exp_add1 |  f:(T   T), n:  , x:T. f(f^n(x)) = f^n+1(x) | 
| THM | fun_exp_add1_sub |  f:(T   T), n:   , x:T. f(f^n-1(x)) = f^n(x) | 
| THM | iteration_terminates |  f:(T   T), m:(T    ). (  x:T. m(f(x))  m(x) & (m(f(x)) = m(x)   f(x) = x))    (  x:T.  n:  . f(f^n(x)) = f^n(x)) | 
| def | flip |  i  j ; x=  j  i else x fi | 
| THM | sum_switch |  n:  , f:(  n    ), i:  (n-1). sum(f((i, i+1)(x)) | x < n) = sum(f(x) | x < n) | 
| THM | flip_symmetry |  k:  , i,j:  k. (i, j) = (j, i) | 
| THM | flip_bijection |  k:  , i,j:  k. Bij(  k;  k; (i, j)) | 
| THM | flip_inverse |  k:  , x,y:  k. (y, x) o (y, x) = (  x.x) | 
| THM | flip_twice |  k:  , x,y,i:  k. (y, x)((y, x)(i)) = i | 
| def | search |  i,j. if 0<  j  j ; P(i)  i+1 else 0 fi) | 
| THM | search_property |  k:  , P:(  k    ). ((  i:  k. P(i))   0<search(k;P)) & (0<search(k;P)   P(search(k;P)-1) & (  j:  k. j<search(k;P)-1     P(j))) | 
| def | prop_and |  Q)(L) == P(L) & Q(L) | 
| THM | and_preserved_by |  P,Q:(T   Prop), R:(T   T   Prop). R preserves P   R preserves Q   R preserves P  Q | 
| def | preserved_by2 |  x,y,z:T. P(x)   P(y)   R(x,y,z)   P(z) |