Thm* n: , R:( n  n Prop), x,y: n. (x (R^*) y)  ( k: (n+1). x R^k y) | [rel_star_finite] |
Thm* R:(T T Prop), k: , x,y:T.
Thm* (x R^k y)
Thm* 
Thm* ( L:T List.
Thm* (||L|| = k+1 & L[0] = x & last(L) = y & ( i: k. L[i] R L[(i+1)])) | [rel_exp_list] |
Thm* L1,L:T List. interleaving(T;L1;nil;L)  L = L1 | [nil_interleaving2] |
Thm* L1,L:T List. interleaving(T;nil;L1;L)  L = L1 | [nil_interleaving] |
Thm* P:(T  ), T':Type, f:({x:T| P(x) } T'), L:T List, x:T'.
Thm* (x mapfilter(f;P;L))  ( y:T. (y L) & P(y) & x = f(y)) | [member_map_filter] |
Thm* P:(T Prop), x:T, L:T List. ( y [x / L].P(y))  P(x) ( y L.P(y)) | [l_exists_cons] |
Thm* P:(T Prop). ( x nil.P(x))  False | [l_exists_nil] |
Thm* l:T List, P:(T  ), x,y:T.
Thm* x before y filter(P;l)  P(x) & P(y) & x before y l | [l_before_filter] |
Thm* L1,L2:T List, P:(T  ). L2 filter(P;L1)  L2 L1 & ( x L2.P(x)) | [sublist_filter] |
Thm* L:T List, P:(T  ). ( x L.P(x))  reduce( x,y. P(x) y;true ;L) | [l_all_reduce] |
Thm* f:(A B), L:A List, P:(B Prop). ( x map(f;L).P(x))  ( x L.P(f(x))) | [l_all_map] |
Thm* P:(T Prop), x:T, L:T List. ( y [x / L].P(y))  P(x) & ( y L.P(y)) | [l_all_cons] |