Thm* eq:{T= }, L,M:T List. L (eq)M  ( x:{x:T| x( eq) L }. x( eq) M) | [is_intersection_implies_exists_element] |
Thm* P:(T Prop), L:T List. x L.P(x)  ( M,N:T List, x:T. P(x) & L = (M @ (x.N))) | [list_exists_is_member_append_lemma] |
Thm* eq:{T= }, L:T List, x:T. x( eq) L  ( M,N:T List. L = (M @ (x.N)) & remove(eq;x;L) = (M @ N)) | [is_member_remove_lemma] |
Thm* eq:{T= }, u:T, L:T List. u( eq) L  ( v:T, M:T List. L = v.M) | [is_member_non_nil] |
Thm* eq:{T= }, L:T List, x:T. ( M,N:T List. L = (M @ (x.N)))  x( eq) L | [append_is_member_lemma] |
Thm* eq:{T }, L:T List, x:T. x( eq) L  ( M,N:T List, y:T. eq(x,y) & L = (M @ (y.N))) | [is_member_append_lemma1] |
Thm* eq:{T= }, L:T List, x:T. x( eq) L  ( M,N:T List. L = (M @ (x.N))) | [is_member_append_lemma] |
Thm* eq:{T= }, L,M:T List. disjoint(eq;L;M)  ( x:T. x( eq) L & x( eq) M) | [not_disjoint_is_member_lemma] |
Thm* eq:{T= }, P:(T Type), L:T List. x L.P(x)  ( x:{x:T| x( eq) L }. P(x)) | [list_exists_exists] |
Thm* eq:{T= }, P:(T Prop), L:T List. ( x:T. x( eq) L & P(x))  y L.P(y) | [list_exists_is_member_lemma] |
Thm* eq:{T }, P:(T  ), L:T List.  x L.P(x)  ( x:{x:T| x( eq) L }. P(x)) | [not_list_all_2_implies_exists_not] |
Thm* eq:{T }, L:T List. L nil  ( x:T. x( eq) L) | [non_nil_is_member] |
Thm* equiv:{T }, eq:{T= }, u:T, L:T List. u( equiv) L  ( v:T. equiv(u,v) & v( eq) L) | [is_member_equality_strengthening_lemma] |
Thm* L:T List. null(L) = false  ( h:T, t:T List. L = h.t) | [null_false_lemma] |