Nuprl Lemma : select_firstn

[T:Type]. ∀[as:T List]. ∀[n:{0...||as||}]. ∀[i:ℕn].  (firstn(n;as)[i] as[i] ∈ T)


Proof




Definitions occuring in Statement :  firstn: firstn(n;as) select: L[n] length: ||as|| list: List int_iseg: {i...j} int_seg: {i..j-} uall: [x:A]. B[x] natural_number: $n universe: Type equal: t ∈ T
Definitions unfolded in proof :  true: True less_than': less_than'(a;b) le: A ≤ B top: Top subtract: m squash: T lelt: i ≤ j < k sq_stable: SqStable(P) uiff: uiff(P;Q) false: False rev_implies:  Q not: ¬A iff: ⇐⇒ Q or: P ∨ Q decidable: Dec(P) int_seg: {i..j-} cand: c∧ B implies:  Q all: x:A. B[x] uimplies: supposing a so_apply: x[s] and: P ∧ Q prop: so_lambda: λ2x.t[x] uall: [x:A]. B[x] nat: int_iseg: {i...j} subtype_rel: A ⊆B member: t ∈ T guard: {T} less_than: a < b firstn: firstn(n;as) bool: 𝔹 unit: Unit it: btrue: tt ifthenelse: if then else fi  bfalse: ff so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] select: L[n] nil: [] so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] cons: [a b]
Lemmas referenced :  list_wf int_iseg_wf int_seg_wf le-add-cancel add-associates add_functionality_wrt_le add-commutes minus-one-mul-top add-swap minus-one-mul minus-add condition-implies-le sq_stable__le not-le-2 false_wf decidable__le length_wf le_wf subtype_rel_sets nat_wf subtract_wf istype-universe select_wf firstn_wf less_than_wf squash_wf true_wf istype-int length_firstn_eq istype-false less-iff-le zero-add istype-void minus-minus add-zero subtype_rel_self iff_weakening_equal less_than_transitivity1 primrec-wf2 all_wf equal_wf lt_int_wf equal-wf-base bool_wf assert_wf le_int_wf bnot_wf less_than_irreflexivity int_subtype_base uiff_transitivity eqtt_to_assert assert_of_lt_int eqff_to_assert assert_functionality_wrt_uiff bnot_of_lt_int assert_of_le_int list-cases length_of_nil_lemma list_ind_nil_lemma stuck-spread istype-base product_subtype_list length_of_cons_lemma list_ind_cons_lemma decidable__equal_int le_weakening select_cons_hd decidable__lt not-lt-2 not-equal-2 minus-zero le-add-cancel2 select_cons_tl le-add-cancel-alt
Rules used in proof :  axiomEquality isect_memberFormation universeEquality minusEquality voidEquality isect_memberEquality addEquality imageElimination baseClosed imageMemberEquality independent_functionElimination voidElimination independent_pairFormation unionElimination dependent_functionElimination productElimination lambdaFormation setEquality rename setElimination independent_isectElimination cumulativity hypothesis natural_numberEquality productEquality lambdaEquality because_Cache intEquality thin isectElimination sqequalHypSubstitution extract_by_obid introduction sqequalRule applyEquality hypothesisEquality sqequalReflexivity computationStep sqequalTransitivity sqequalSubstitution cut Error :lambdaFormation_alt,  Error :universeIsType,  Error :functionIsType,  Error :equalityIsType1,  Error :lambdaEquality_alt,  equalityTransitivity equalitySymmetry Error :inhabitedIsType,  Error :dependent_set_memberEquality_alt,  Error :isect_memberEquality_alt,  Error :productIsType,  instantiate Error :setIsType,  functionEquality baseApply closedConclusion equalityElimination promote_hyp hypothesis_subsumption

Latex:
\mforall{}[T:Type].  \mforall{}[as:T  List].  \mforall{}[n:\{0...||as||\}].  \mforall{}[i:\mBbbN{}n].    (firstn(n;as)[i]  =  as[i])



Date html generated: 2019_06_20-PM-00_43_28
Last ObjectModification: 2018_10_08-PM-00_19_06

Theory : list_0


Home Index