Nuprl Lemma : apply_uncurry

[B:Type]. ∀[n:ℕ]. ∀[m:ℕ1]. ∀[q:ℕ1]. ∀[A:ℕn ⟶ Type]. ∀[lst:k:{q..n-} ⟶ (A k)].
[f:(k:{q..n-} ⟶ (A k)) ⟶ funtype(n m;λx.(A (x m));B)].
  ((uncurry-gen(n) lst) (apply_gen(n;lst) (f lst)) ∈ B)


Proof




Definitions occuring in Statement :  apply_gen: apply_gen(n;lst) uncurry-gen: uncurry-gen(n) funtype: funtype(n;A;T) int_seg: {i..j-} nat: uall: [x:A]. B[x] apply: a lambda: λx.A[x] function: x:A ⟶ B[x] subtract: m add: m natural_number: $n universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T exists: x:A. B[x] nat: int_seg: {i..j-} guard: {T} ge: i ≥  lelt: i ≤ j < k and: P ∧ Q all: x:A. B[x] decidable: Dec(P) or: P ∨ Q uimplies: supposing a satisfiable_int_formula: satisfiable_int_formula(fmla) false: False implies:  Q not: ¬A top: Top prop: sq_type: SQType(T) squash: T le: A ≤ B true: True subtype_rel: A ⊆B iff: ⇐⇒ Q apply_gen: apply_gen(n;lst) uncurry-gen: uncurry-gen(n) funtype: funtype(n;A;T) bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) ifthenelse: if then else fi  bfalse: ff bnot: ¬bb assert: b nequal: a ≠ b ∈  rev_implies:  Q less_than: a < b subtract: m so_lambda: λ2x.t[x] so_apply: x[s]
Lemmas referenced :  subtract_wf int_seg_properties nat_properties decidable__le satisfiable-full-omega-tt intformand_wf intformnot_wf intformle_wf itermConstant_wf itermSubtract_wf itermVar_wf intformless_wf itermAdd_wf int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_subtract_lemma int_term_value_var_lemma int_formula_prop_less_lemma int_term_value_add_lemma int_formula_prop_wf le_wf decidable__equal_int intformeq_wf int_formula_prop_eq_lemma equal_wf subtype_base_sq int_subtype_base lelt_wf squash_wf true_wf iff_weakening_equal ge_wf less_than_wf int_seg_wf primrec_wf primrec-unroll eq_int_wf bool_wf uiff_transitivity equal-wf-T-base assert_wf eqtt_to_assert assert_of_eq_int eqff_to_assert bool_cases_sqequal bool_subtype_base assert-bnot neg_assert_of_eq_int iff_transitivity bnot_wf not_wf iff_weakening_uiff assert_of_bnot decidable__lt subtype_rel-equal minus-add minus-minus add-associates minus-one-mul add-mul-special add-swap add-commutes mul-distributes-right two-mul zero-add one-mul itermMultiply_wf int_term_value_mul_lemma zero-mul add-zero apply_gen_wf subtype_rel_dep_function int_seg_subtype subtype_rel_self nat_wf funtype_wf add-member-int_seg1
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut dependent_pairFormation dependent_set_memberEquality extract_by_obid sqequalHypSubstitution isectElimination thin setElimination rename because_Cache hypothesis hypothesisEquality natural_numberEquality addEquality productElimination dependent_functionElimination unionElimination independent_isectElimination lambdaEquality int_eqEquality intEquality isect_memberEquality voidElimination voidEquality sqequalRule independent_pairFormation computeAll instantiate cumulativity equalityTransitivity equalitySymmetry independent_functionElimination applyEquality imageElimination imageMemberEquality baseClosed universeEquality intWeakElimination lambdaFormation axiomEquality functionEquality functionExtensionality equalityElimination promote_hyp impliesFunctionality multiplyEquality minusEquality

Latex:
\mforall{}[B:Type].  \mforall{}[n:\mBbbN{}].  \mforall{}[m:\mBbbN{}n  +  1].  \mforall{}[q:\mBbbN{}m  +  1].  \mforall{}[A:\mBbbN{}n  {}\mrightarrow{}  Type].  \mforall{}[lst:k:\{q..n\msupminus{}\}  {}\mrightarrow{}  (A  k)].
\mforall{}[f:(k:\{q..n\msupminus{}\}  {}\mrightarrow{}  (A  k))  {}\mrightarrow{}  funtype(n  -  m;\mlambda{}x.(A  (x  +  m));B)].
    ((uncurry-gen(n)  m  f  lst)  =  (apply\_gen(n;lst)  m  (f  lst)))



Date html generated: 2017_10_01-AM-09_03_39
Last ObjectModification: 2017_07_26-PM-04_44_29

Theory : bags


Home Index