Nuprl Lemma : select-map2

[T:Type]
  ∀[A,B:Type]. ∀[f:A ⟶ B ⟶ T]. ∀[as:A List]. ∀[bs:B List].
    ∀[i:ℕ||as||]. (map2(f;as;bs)[i] (f as[i] bs[i]) ∈ T) supposing ||as|| ||bs|| ∈ ℤ 
  supposing value-type(T)


Proof




Definitions occuring in Statement :  map2: map2(f;as;bs) select: L[n] length: ||as|| list: List int_seg: {i..j-} value-type: value-type(T) uimplies: supposing a uall: [x:A]. B[x] apply: a function: x:A ⟶ B[x] natural_number: $n int: universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uimplies: supposing a so_lambda: λ2x.t[x] prop: int_seg: {i..j-} sq_stable: SqStable(P) implies:  Q lelt: i ≤ j < k and: P ∧ Q squash: T true: True subtype_rel: A ⊆B guard: {T} iff: ⇐⇒ Q rev_implies:  Q all: x:A. B[x] so_apply: x[s] map2: map2(f;as;bs) nil: [] it: exists: x:A. B[x] false: False select: L[n] so_lambda: λ2y.t[x; y] top: Top so_apply: x[s1;s2] cons: [a b] subtract: m le: A ≤ B uiff: uiff(P;Q) sq_type: SQType(T) ge: i ≥  nat: has-value: (a)↓ bool: 𝔹 unit: Unit btrue: tt ifthenelse: if then else fi  bfalse: ff or: P ∨ Q bnot: ¬bb assert: b not: ¬A decidable: Dec(P) less_than': less_than'(a;b)
Lemmas referenced :  list_induction uall_wf list_wf isect_wf equal_wf length_wf int_seg_wf select_wf map2_wf sq_stable__le less_than_wf squash_wf true_wf length-map2 iff_weakening_equal less_than_transitivity1 le_weakening equal-wf-base-T nil_wf length-nil length_of_nil_lemma non_neg_length length_wf_nat nat_wf subtype_rel-equal base_wf less_than_irreflexivity stuck-spread equal-wf-base length_of_cons_lemma cons_wf spread_cons_lemma equal-wf-T-base value-type_wf subtract_wf minus-one-mul zero-add add-mul-special zero-mul trivial-cancel subtype_base_sq int_subtype_base int_seg_properties nat_properties value-type-has-value list-value-type le_int_wf bool_wf eqtt_to_assert assert_of_le_int eqff_to_assert bool_cases_sqequal bool_subtype_base assert-bnot le_wf decidable__equal_int false_wf not-equal-2 le_antisymmetry_iff condition-implies-le add-associates minus-add add-swap minus-one-mul-top add-commutes add_functionality_wrt_le le-add-cancel2 decidable__le not-le-2 minus-zero add-zero minus-minus le-add-cancel decidable__lt not-lt-2 less-iff-le lelt_wf select-cons
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut thin extract_by_obid sqequalHypSubstitution isectElimination hypothesisEquality sqequalRule lambdaEquality cumulativity hypothesis intEquality because_Cache natural_numberEquality independent_isectElimination functionExtensionality applyEquality setElimination rename independent_functionElimination productElimination imageMemberEquality baseClosed imageElimination equalityTransitivity equalitySymmetry universeEquality dependent_functionElimination lambdaFormation dependent_pairFormation sqequalIntensionalEquality voidElimination promote_hyp voidEquality isect_memberEquality axiomEquality addEquality functionEquality multiplyEquality minusEquality instantiate callbyvalueReduce unionElimination equalityElimination independent_pairFormation dependent_set_memberEquality

Latex:
\mforall{}[T:Type]
    \mforall{}[A,B:Type].  \mforall{}[f:A  {}\mrightarrow{}  B  {}\mrightarrow{}  T].  \mforall{}[as:A  List].  \mforall{}[bs:B  List].
        \mforall{}[i:\mBbbN{}||as||].  (map2(f;as;bs)[i]  =  (f  as[i]  bs[i]))  supposing  ||as||  =  ||bs|| 
    supposing  value-type(T)



Date html generated: 2017_04_14-AM-08_49_00
Last ObjectModification: 2017_02_27-PM-03_36_13

Theory : list_0


Home Index