Nuprl Lemma : first-member-iff

[T:Type]
  ∀L:T List. ∀P:T ⟶ 𝔹. ∀x:T.
    (first-member(T;x;L;P) ⇐⇒ ∃K,J:T List. ((L (K [x J]) ∈ (T List)) ∧ (↑(P x)) ∧ (∀y∈K.¬↑(P y))))


Proof




Definitions occuring in Statement :  first-member: first-member(T;x;L;P) l_all: (∀x∈L.P[x]) append: as bs cons: [a b] list: List assert: b bool: 𝔹 uall: [x:A]. B[x] all: x:A. B[x] exists: x:A. B[x] iff: ⇐⇒ Q not: ¬A and: P ∧ Q apply: a function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q implies:  Q first-member: first-member(T;x;L;P) exists: x:A. B[x] member: t ∈ T prop: rev_implies:  Q so_lambda: λ2x.t[x] so_apply: x[s] int_seg: {i..j-} cand: c∧ B top: Top subtype_rel: A ⊆B uimplies: supposing a le: A ≤ B less_than': less_than'(a;b) false: False not: ¬A guard: {T} lelt: i ≤ j < k decidable: Dec(P) or: P ∨ Q less_than: a < b squash: T satisfiable_int_formula: satisfiable_int_formula(fmla) ge: i ≥  nat: true: True sq_type: SQType(T) select: L[n] cons: [a b]
Lemmas referenced :  first-member_wf append_wf cons_wf assert_wf l_all_wf2 not_wf l_member_wf bool_wf list_wf firstn_wf nth_tl_wf add-commutes istype-void nth_tl_decomp_eq int_seg_subtype_nat length_wf istype-false int_seg_properties decidable__lt full-omega-unsat intformand_wf intformnot_wf intformless_wf itermVar_wf istype-int int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_less_lemma int_term_value_var_lemma int_formula_prop_wf append_firstn_lastn_sq subtype_rel_list top_wf itermAdd_wf itermConstant_wf int_term_value_add_lemma int_term_value_constant_lemma le_wf less_than_wf equal_wf l_all_iff member-firstn length-append length_of_cons_lemma non_neg_length intformle_wf int_formula_prop_le_lemma equal-wf-base int_seg_wf length_wf_nat set_subtype_base int_subtype_base select_wf decidable__le false_wf select_append_back iff_weakening_equal subtype_base_sq decidable__equal_int intformeq_wf itermSubtract_wf int_formula_prop_eq_lemma int_term_value_subtract_lemma squash_wf true_wf subtype_rel_self select_append_front select_member l_all_fwd
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt lambdaFormation_alt independent_pairFormation sqequalHypSubstitution productElimination thin universeIsType cut introduction extract_by_obid isectElimination hypothesisEquality hypothesis sqequalRule productIsType inhabitedIsType equalityIsType1 applyEquality lambdaEquality_alt setElimination rename setIsType functionIsType universeEquality dependent_pairFormation_alt addEquality because_Cache natural_numberEquality isect_memberEquality_alt voidElimination independent_isectElimination dependent_functionElimination unionElimination imageElimination approximateComputation independent_functionElimination int_eqEquality equalitySymmetry dependent_set_memberEquality_alt hyp_replacement applyLambdaEquality intEquality imageMemberEquality baseClosed equalityTransitivity instantiate cumulativity productEquality

Latex:
\mforall{}[T:Type]
    \mforall{}L:T  List.  \mforall{}P:T  {}\mrightarrow{}  \mBbbB{}.  \mforall{}x:T.
        (first-member(T;x;L;P)  \mLeftarrow{}{}\mRightarrow{}  \mexists{}K,J:T  List.  ((L  =  (K  @  [x  /  J]))  \mwedge{}  (\muparrow{}(P  x))  \mwedge{}  (\mforall{}y\mmember{}K.\mneg{}\muparrow{}(P  y))))



Date html generated: 2019_10_15-AM-11_08_00
Last ObjectModification: 2018_10_16-AM-09_34_26

Theory : general


Home Index