Origin Definitions Sections Support(jlc) Doc

list_3_jlc
Nuprl Section: list_3_jlc - More on Lists
Selected Objects
deflist_length|| == (letrec l L = (Case of L; nil 0 ; h.t 1+l(t)) )
THMlist_length_non_negativeL:T List. ||(L)0
THMdiscrete__listDiscrete{T} Discrete{(T List)}
THMnull_true_lemmaL:T List. null(L) = true L = nil
THMnull_false_lemmaL:T List. null(L) = false (h:T, t:T List. L = h.t)
defremoveremove(eq;x;L) == (letrec remove eq x L = (Case of L; nil nil ; h.t if eq(x,h) t else h.remove(eq,x,t) fi) ) (eq,x,L)
deffilterfilter(f;L) == (letrec filter f L = (Case of L; nil nil ; h.t if f(h) h.filter(f,t) else filter(f,t) fi) ) (f,L)
defis_memberx(eq) L == (letrec is_member x eq L = (Case of L; nil false ; h.t if eq(x,h) true else is_member(x,eq,t) fi) ) (x,eq,L)
THMsq_stable__is_membereq:(TT), x:T, L:T List. SqStable(x(eq) L)
THMdecidable__is_membereq:(TT), x:T, L:T List. Dec(x(eq) L)
THMis_member_equalities_lemmaeq:{T=}, u:T, L:T List. u(eq) L (f:{T}. u(f) L)
THMis_member_equality_strengthening_lemmaequiv:{T}, eq:{T=}, u:T, L:T List. u(equiv) L (v:T. equiv(u,v) & v(eq) L)
THMhd_is_member_lemmaeq:{T}, L:T List. ||L||1 hd(L)(eq) L
THMnon_nil_is_membereq:{T}, L:T List. L nil (x:T. x(eq) L)
THMis_member_conseq:{T}, t:T, L:T List. t(eq) (t.L)
deflist_allxL.P(x) == (letrec list_all L = (Case of L; nil True ; h.t P(h) & list_all(t)) ) (L)
THMlist_all_tailP:(TProp), L:T List, x:T. x(x.L).P(x) xL.P(x)
THMsq_stable__list_allP:(TProp), L:T List. (x:T. SqStable(P(x))) SqStable(xL.P(x))
THMdecidable__list_allP:(TProp), L:T List. (x:T. Dec(P(x))) Dec(xL.P(x))
THMlist_all_of_false_falseL:T List, x:T. x(x.L).False False
deflist_all_2xL.P(x) == (letrec all L = (Case of L; nil true ; h.t P(h)(all(t))) ) (L)
THMnot_list_all_2_implies_exists_noteq:{T}, P:(T), L:T List. xL.P(x) (x:{x:T| x(eq) L }. P(x))
THMlist_all_iff_assert_list_all_2L:T List, P:(T). xL.P(x) xL.P(x)
THMlist_all_is_member_lemmaeq:{T=}, P:(TProp), L:T List. xL.P(x) (z:T. z(eq) L P(z))
THMlist_all_is_member_nil_lemmaeq:(TT), L:T List. xL.x(eq) nil nil = L
deflist_existsxL.P(x) == (letrec list_exists L = (Case of L; nil False ; h.t P(h) list_exists(t)) ) (L)
THMdecidable__list_existsP:(TProp), L:T List. (x:T. Dec(P(x))) Dec(xL.P(x))
THMlist_exists_is_member_lemmaeq:{T=}, P:(TProp), L:T List. (x:T. x(eq) L & P(x)) yL.P(y)
THMlist_exists_is_member_lemma1eq:{T=}, P:(TProp), x:T, L:T List. x(eq) L P(x) yL.P(y)
THMlist_exists_existseq:{T=}, P:(TType), L:T List. xL.P(x) (x:{x:T| x(eq) L }. P(x))
THMlist_all_alleq:{T=}, P:(TType), L:T List. xL.P(x) (x:{x:T| x(eq) L }. P(x))
THMlist_all_2_allP:(T), L:T List. xL.P(x) xL.P(x)
deflist_exists_2xL.P(x) == (letrec exists L = (Case of L; nil false ; h.t P(h) exists(t)) ) (L)
THMremove_is_membereq:{T}, x,y:T, L:T List. x(eq) remove(eq;y;L) x(eq) L
THMnot_list_all_not_iff_list_existsP:(TProp). (x:T. Dec(P(x))) (L:T List. xL.(P(x)) xL.P(x))
defdisjointdisjoint(eq;L1;L2) == xL1.x(eq) L2
THMdecidable__disjointeq:(TT), L1,L2:T List. Dec(disjoint(eq;L1;L2))
THMdisjoint_taileq:(TT), L1,L2:T List, x:T. disjoint(eq;(x.L1);L2) disjoint(eq;L1;L2)
defdisjoint2disjoint(eq;L;M) == (letrec disjoint2 L = (Case of L; nil true ; h.t if h(eq) M false else disjoint2(t) fi) ) (L)
THMdisjoint_iff_assert_disjoint2eq:{T}, L,M:T List. disjoint(eq;L;M) disjoint(eq;L;M)
THMnot_disjoint_is_member_lemmaeq:{T=}, L,M:T List. disjoint(eq;L;M) (x:T. x(eq) L & x(eq) M)
THMappend_nil_right_identityL:T List. (L @ nil) = L
defsublistL1(eq)L2 == xL1.x(eq) L2
THMdecidable__sublisteq:{T}, L,M:T List. Dec(L(eq)M)
THMsublist_tailDiscrete{T} (eq:{T}, u:T, v:T List. v(eq)(u.v))
THMsublist_tail1eq:{T=}, u:T, v:T List. v(eq)(u.v)
THMsublist_list_all_lemmaEQ:{T=}, eq:{T}, L,M:T List. L(eq)M (z:T. z(EQ) L z(eq) M)
THMsublist_weakening_wrt_identityDiscrete{T} (eq:{T}, L,M:T List. L = M L(eq)M)
THMsublist_reflexiveeq:{T=}, L:T List. L(eq)L
THMsublist_transitivityDiscrete{T} (eq1,eq2,eq3:{T}, L1,L2,L3:T List. eq1 = eq2 eq2 = eq3 L1(eq1)L2 L2(eq2)L3 L1(eq3)L3)
THMis_member_sublist_lemmaeq:{T=}, x:T, L,M:T List. x(eq) L L(eq)M x(eq) M
defsublist_2(eq)(L,M) == xL.x(eq) M
THMsublist_iff_assert_sublist_2Discrete{T} (eq:{T}, L,M:T List. L(eq)M (eq)(L,M))
THMsublist_iff_assert_sublist_2_xL,M:T List, eq:{T=}. L(eq)M (eq)(L,M)
THMsublist_of_nil_iff_nileq:{T=}, L:T List. L(eq)nil L = nil
THMappend_associativeL1,L2,L3:T List. (L1 @ (L2 @ L3)) = ((L1 @ L2) @ L3)
THMis_member_append_lemmaeq:{T=}, L:T List, x:T. x(eq) L (M,N:T List. L = (M @ (x.N)))
THMis_member_append_lemma1eq:{T}, L:T List, x:T. x(eq) L (M,N:T List, y:T. eq(x,y) & L = (M @ (y.N)))
THMis_member_of_append_lemmaeq:{T}, L,M:T List, x:T. x(eq) (L @ M) x(eq) L x(eq) M
THMis_member_append_disjunction_lemmaeq:{T}, x:T, L,M:T List. x(eq) (L @ M) x(eq) L x(eq) M
THMappend_commutes_under_is_membereq:{T}, L,M:T List, x:T. x(eq) (L @ M) x(eq) (M @ L)
THMappend_commutes_under_sublistDiscrete{T} (eq:{T}, L,M:T List. (L @ M)(eq)(M @ L))
THMappend_commutes_under_list_isoDiscrete{T} (eq:{T}, L,M:T List. (L @ M)(~eq)(M @ L))
THMappend_functionality_wrt_sublistL1,L2:T List, eq1,eq2,eq3:{T}, L3,L4:T List. Discrete{T} eq1 = eq2 eq2 = eq3 L1(eq1)L2 L3(eq2)L4 (L1 @ L3)(eq3)(L2 @ L4)
THMappend_is_member_lemmaeq:{T=}, L:T List, x:T. (M,N:T List. L = (M @ (x.N))) x(eq) L
THMis_member_non_nileq:{T=}, u:T, L:T List. u(eq) L (v:T, M:T List. L = v.M)
THMis_member_remove_lemmaeq:{T=}, L:T List, x:T. x(eq) L (M,N:T List. L = (M @ (x.N)) & remove(eq;x;L) = (M @ N))
THMis_member_taileq:{T}, x:T, L:T List. x(eq) L (y:T. x(eq) (y.L))
THMis_member_filter_lemmaeq:{T=}, P:(T), L:T List, x:T. x(eq) filter((x.P(x));L) P(x)
THMfilter_is_member_lemmaeq:{T=}, P:(T), L:T List, x:T. x(eq) L P(x) x(eq) filter((x.P(x));L)
deflist_isoL1(~eq)L2 == L1(eq)L2 & L2(eq)L1
THMlist_iso_weakening_wrt_identityDiscrete{T} (eq:{T}, L,M:T List. L = M L(~eq)M)
THMlist_iso_commutativeeq:{T}, L,M:T List. L(~eq)M M(~eq)L
THMlist_iso_inversionDiscrete{T} (eq1,eq2:{T}, L,M:T List. eq1 = eq2 L(~eq1)M M(~eq2)L)
THMlist_iso_transitivityDiscrete{T} (eq1,eq2,eq3:{T}, L1,L2,L3:T List. eq1 = eq2 eq2 = eq3 L1(~eq1)L2 L2(~eq2)L3 L1(~eq3)L3)
THMappend_functionality_wrt_list_isoL1,L2:T List, eq1,eq2,eq3:{T}, L3,L4:T List. Discrete{T} eq1 = eq2 eq2 = eq3 L1(~eq1)L2 L3(~eq2)L4 (L1 @ L3)(~eq3)(L2 @ L4)
THMsublist_functionality_wrt_id_list_iso_idL1,L2:T List, eq1,eq2:{T}, L3,L4:T List. Discrete{T} eq1 = eq2 L1(~eq1)L2 L3 = L4 (L1(eq2)L3 L2(eq2)L4)
THMsublist_functionality_wrt_id_id_list_isoL1,L2:T List, eq1,eq2:{T}, L3,L4:T List. Discrete{T} eq1 = eq2 L1 = L2 L3(~eq1)L4 (L1(eq2)L3 L2(eq2)L4)
THMsublist_functionality_wrt_id_list_iso_list_isoL1,L2:T List, eq1,eq2,eq3,eq4:{T}, L3,L4:T List. Discrete{T} eq1 = eq2 eq2 = eq3 eq3 = eq4 L1(~eq1)L2 L3(~eq2)L4 (L1(eq3)L3 L2(eq4)L4)
THMlist_iso_functionality_wrt_id_list_iso_idL1,L2:T List, eq1,eq2:{T}, L3,L4:T List. Discrete{T} eq1 = eq2 L1(~eq1)L2 L3 = L4 (L1(~eq2)L3 L2(~eq2)L4)
THMlist_iso_functionality_wrt_id_list_iso_list_isoL1,L2:T List, eq1,eq2,eq3:{T}, L3,L4:T List. Discrete{T} eq1 = eq2 eq2 = eq3 L1(~eq1)L2 L3(~eq2)L4 (L1(~eq3)L3 L2(~eq3)L4)
deflist_iso_2(~eq)(L,M) == ((eq)(L,M))((eq)(M,L))
THMlist_iso_iff_assert_list_iso_2Discrete{T} (eq:{T}, L,M:T List. L(~eq)M (~eq)(L,M))
THMdecidable__list_isoeq:{T}, L,M:T List. Dec(L(~eq)M)
THMdecidable__equal_list(x,y:T. Dec(x = y)) (L,M:T List. Dec(L = M))
THMnot_is_member_remove_lemmaeq:{T=}, x,y:T, L:T List. x(eq) L eq(x,y) x(eq) remove(eq;y;L)
THMremove_is_member_lemmaeq:{T}, u:T, L:T List, v:T. v(eq) remove(eq;u;L) v(eq) L
THMlist_all_append_lemmaP:(TProp), L,M:T List. x(L @ M).P(x) xL.P(x) & xM.P(x)
THMlist_exists_append_lemmaP:(TProp), L,M:T List. x(L @ M).P(x) xL.P(x) xM.P(x)
THMlist_exists_is_member_append_lemmaP:(TProp), L:T List. xL.P(x) (M,N:T List, x:T. P(x) & L = (M @ (x.N)))
THMsingelton_append_equals_lemmaa:T, R,S:T List, b:T. [a] = (R @ (b.S)) a = b
defis_intersectionL(eq)M == xL.x(eq) M
THMis_intersection_implies_exists_elementeq:{T=}, L,M:T List. L(eq)M (x:{x:T| x(eq) L }. x(eq) M)

Origin Definitions Sections Support(jlc) Doc