Nuprl Lemma : first-member-cons

[T:Type]
  ∀P:T ⟶ 𝔹. ∀x,u:T. ∀L:T List.  (first-member(T;x;[u L];P) ⇐⇒ if then u ∈ else first-member(T;x;L;P) fi )


Proof




Definitions occuring in Statement :  first-member: first-member(T;x;L;P) cons: [a b] list: List ifthenelse: if then else fi  bool: 𝔹 uall: [x:A]. B[x] all: x:A. B[x] iff: ⇐⇒ 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 member: t ∈ T prop: rev_implies:  Q first-member: first-member(T;x;L;P) exists: x:A. B[x] int_seg: {i..j-} decidable: Dec(P) or: P ∨ Q uimplies: supposing a sq_type: SQType(T) guard: {T} select: L[n] cons: [a b] bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) ifthenelse: if then else fi  bfalse: ff bnot: ¬bb assert: b false: False not: ¬A top: Top lelt: i ≤ j < k satisfiable_int_formula: satisfiable_int_formula(fmla) le: A ≤ B less_than': less_than'(a;b) ge: i ≥  cand: c∧ B less_than: a < b squash: T so_lambda: λ2x.t[x] so_apply: x[s] subtract: m nat_plus: + true: True
Lemmas referenced :  first-member_wf cons_wf ifthenelse_wf equal_wf list_wf bool_wf decidable__equal_int subtype_base_sq int_subtype_base eqtt_to_assert eqff_to_assert bool_cases_sqequal bool_subtype_base assert-bnot assert_elim and_wf not_assert_elim btrue_neq_bfalse select-cons-tl length_of_cons_lemma int_seg_properties length_wf decidable__lt satisfiable-full-omega-tt intformand_wf intformnot_wf intformless_wf itermConstant_wf itermVar_wf intformeq_wf intformle_wf int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_less_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_eq_lemma int_formula_prop_le_lemma int_formula_prop_wf false_wf lelt_wf subtract_wf decidable__le itermSubtract_wf int_term_value_subtract_lemma non_neg_length itermAdd_wf int_term_value_add_lemma assert_wf select_wf int_seg_wf all_wf not_wf add-member-int_seg2 add-subtract-cancel bool_cases assert_of_bnot add_nat_plus length_wf_nat less_than_wf nat_plus_wf nat_plus_properties add-is-int-iff
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation lambdaFormation independent_pairFormation cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin cumulativity hypothesisEquality functionExtensionality applyEquality hypothesis instantiate universeEquality functionEquality productElimination dependent_functionElimination setElimination rename natural_numberEquality unionElimination intEquality independent_isectElimination because_Cache independent_functionElimination equalityTransitivity equalitySymmetry sqequalRule equalityElimination dependent_pairFormation promote_hyp voidElimination addLevel levelHypothesis dependent_set_memberEquality applyLambdaEquality isect_memberEquality voidEquality addEquality lambdaEquality int_eqEquality computeAll productEquality imageElimination imageMemberEquality baseClosed pointwiseFunctionality baseApply closedConclusion

Latex:
\mforall{}[T:Type]
    \mforall{}P:T  {}\mrightarrow{}  \mBbbB{}.  \mforall{}x,u:T.  \mforall{}L:T  List.
        (first-member(T;x;[u  /  L];P)  \mLeftarrow{}{}\mRightarrow{}  if  P  u  then  x  =  u  else  first-member(T;x;L;P)  fi  )



Date html generated: 2018_05_21-PM-06_33_48
Last ObjectModification: 2017_07_26-PM-04_52_15

Theory : general


Home Index