Nuprl Lemma : callbyvalueall-seq-spread

[F,G,H,L,K:Top]. ∀[m:ℕ+]. ∀[n:ℕ1].
  (let x,y callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λa.<F[a], G[a]>;m 1);n;m) 
   in H[x;y] callbyvalueall-seq(L;λf.mk_applies(f;K;n);mk_lambdas(λa.H[F[a];G[a]];m 1);n;m))


Proof




Definitions occuring in Statement :  mk_applies: mk_applies(F;G;m) mk_lambdas: mk_lambdas(F;m) callbyvalueall-seq: callbyvalueall-seq(L;G;F;n;m) int_seg: {i..j-} nat_plus: + uall: [x:A]. B[x] top: Top so_apply: x[s1;s2] so_apply: x[s] lambda: λx.A[x] spread: spread def pair: <a, b> subtract: m add: m natural_number: $n sqequal: t
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T exists: x:A. B[x] nat: nat_plus: + int_seg: {i..j-} guard: {T} 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: so_lambda: λ2x.t[x] so_apply: x[s] ge: i ≥  sq_type: SQType(T) callbyvalueall-seq: callbyvalueall-seq(L;G;F;n;m) bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) ifthenelse: if then else fi  bfalse: ff bnot: ¬bb assert: b mk_applies: mk_applies(F;G;m) primrec: primrec(n;b;c) subtract: m so_lambda: so_lambda(x,y,z,w.t[x; y; z; w]) so_apply: x[s1;s2;s3;s4] so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] le: A ≤ B iff: ⇐⇒ Q rev_implies:  Q subtype_rel: A ⊆B less_than': less_than'(a;b) true: True
Lemmas referenced :  subtract_wf int_seg_properties nat_plus_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 nat_plus_wf set_subtype_base less_than_wf int_subtype_base nat_properties decidable__lt ge_wf lelt_wf int_seg_wf top_wf le_int_wf bool_wf eqtt_to_assert assert_of_le_int add-zero eqff_to_assert bool_cases_sqequal bool_subtype_base assert-bnot primrec1_lemma mk_applies_lambdas1 lifting-strict-callbyvalueall strict4-spread add-subtract-cancel mk_applies_lambdas2 false_wf not-lt-2 condition-implies-le minus-add minus-one-mul zero-add minus-one-mul-top add-commutes add_functionality_wrt_le add-associates le-add-cancel eq_int_wf assert_wf bnot_wf not_wf equal-wf-base mk_applies_unroll bool_cases assert_of_eq_int iff_transitivity iff_weakening_uiff assert_of_bnot mk_applies_fun
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 intWeakElimination lambdaFormation sqequalAxiom equalityElimination promote_hyp baseClosed applyEquality minusEquality impliesFunctionality

Latex:
\mforall{}[F,G,H,L,K:Top].  \mforall{}[m:\mBbbN{}\msupplus{}].  \mforall{}[n:\mBbbN{}m  +  1].
    (let  x,y  =  callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}a.<F[a],  G[a]>m  -  1);n;m) 
      in  H[x;y]  \msim{}  callbyvalueall-seq(L;\mlambda{}f.mk\_applies(f;K;n);mk\_lambdas(\mlambda{}a.H[F[a];G[a]];m  -  1);n;m))



Date html generated: 2017_10_01-AM-08_41_19
Last ObjectModification: 2017_07_26-PM-04_28_34

Theory : untyped!computation


Home Index