Nuprl Lemma : callbyvalueall_seq-combine

[F,L1,L2,K:Top]. ∀[m1:ℕ+]. ∀[m2:ℕ]. ∀[n:ℕm1].
  (callbyvalueall_seq(L1;λf.mk_applies(f;K;n);λg.(g 
                                                  mk_lambdas(λout.callbyvalueall_seq(L2[out];λx.x;λg.(g F[m2]);0;m2);m1 
                                                  1));n;m1) 
  callbyvalueall_seq(λi.if i <m1 then L1 else mk_lambdas(λout.(L2[out] (i m1));m1 1) fi f.mk_applies(f;K;n)
                      g.(g mk_lambdas(F[m2];m1));n;m1 m2))


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: + nat: ifthenelse: if then else fi  lt_int: i <j uall: [x:A]. B[x] top: Top so_apply: x[s] apply: a lambda: λx.A[x] subtract: m add: m natural_number: $n sqequal: t
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T nat_plus: + int_seg: {i..j-} lelt: i ≤ j < k and: P ∧ Q exists: x:A. B[x] nat: ge: i ≥  all: x:A. B[x] decidable: Dec(P) or: P ∨ Q uimplies: supposing a not: ¬A implies:  Q satisfiable_int_formula: satisfiable_int_formula(fmla) false: False top: Top prop: sq_type: SQType(T) guard: {T} less_than: a < b squash: T less_than': less_than'(a;b) 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 le: A ≤ B iff: ⇐⇒ Q rev_implies:  Q subtract: m subtype_rel: A ⊆B true: True nequal: a ≠ b ∈  mk_applies: mk_applies(F;G;m) so_lambda: λ2x.t[x] so_apply: x[s]
Lemmas referenced :  int_seg_properties subtract_wf nat_properties nat_plus_properties decidable__le full-omega-unsat intformand_wf intformnot_wf intformle_wf itermConstant_wf itermSubtract_wf itermVar_wf intformless_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_formula_prop_wf le_wf decidable__equal_int intformeq_wf itermAdd_wf int_formula_prop_eq_lemma int_term_value_add_lemma equal_wf decidable__lt subtype_base_sq int_subtype_base ge_wf less_than_wf int_seg_wf nat_wf nat_plus_wf top_wf add-subtract-cancel le_int_wf bool_wf eqtt_to_assert assert_of_le_int eqff_to_assert bool_cases_sqequal bool_subtype_base assert-bnot mk_applies_lambdas2 lt_int_wf assert_of_lt_int zero-add callbyvalueall_seq-shift false_wf mk_applies_unroll not-lt-2 condition-implies-le minus-add minus-one-mul minus-one-mul-top add-commutes add_functionality_wrt_le add-associates add-zero le-add-cancel eq_int_wf assert_of_eq_int mk_applies_fun lelt_wf neg_assert_of_eq_int callbyvalueall_seq-shift-init0 mk_applies_ite mk_applies_lambdas1 primrec1_lemma callbyvalueall_seq-fun1 iff_imp_equal_bool bfalse_wf assert_wf iff_wf callbyvalueall_seq-eta mk_applies_lambdas bnot_wf not_wf equal-wf-base bool_cases iff_transitivity iff_weakening_uiff assert_of_bnot
Rules used in proof :  cut introduction extract_by_obid sqequalHypSubstitution sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isectElimination thin natural_numberEquality setElimination rename because_Cache hypothesis hypothesisEquality productElimination dependent_pairFormation dependent_set_memberEquality dependent_functionElimination unionElimination independent_isectElimination approximateComputation independent_functionElimination lambdaEquality int_eqEquality intEquality isect_memberEquality voidElimination voidEquality sqequalRule independent_pairFormation addEquality instantiate cumulativity equalityTransitivity equalitySymmetry intWeakElimination lambdaFormation sqequalAxiom imageElimination isect_memberFormation equalityElimination promote_hyp applyEquality minusEquality addLevel impliesFunctionality baseApply closedConclusion baseClosed

Latex:
\mforall{}[F,L1,L2,K:Top].  \mforall{}[m1:\mBbbN{}\msupplus{}].  \mforall{}[m2:\mBbbN{}].  \mforall{}[n:\mBbbN{}m1].
    (callbyvalueall\_seq(L1;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.(g 
                                                                                                    mk\_lambdas(\mlambda{}out.callbyvalueall\_seq(L2[out];\mlambda{}x.x
                                                                                                                                                                        ;\mlambda{}g.(g  F[m2]);0
                                                                                                                                                                        ;m2);m1  -  1));n
                                          ;m1)  \msim{}  callbyvalueall\_seq(\mlambda{}i.if  i  <z  m1
                                                                                                    then  L1  i
                                                                                                    else  mk\_lambdas(\mlambda{}out.(L2[out]  (i  -  m1));m1  -  1)
                                                                                                    fi  ;\mlambda{}f.mk\_applies(f;K;n);\mlambda{}g.(g 
                                                                                                                                                              mk\_lambdas(F[m2];m1))
                                                                                            ;n;m1  +  m2))



Date html generated: 2018_05_21-PM-06_23_18
Last ObjectModification: 2018_05_19-PM-05_31_41

Theory : untyped!computation


Home Index