Nuprl Lemma : accum_split_prefix2

[A,T:Type]. ∀[x:A]. ∀[g:(T List × A) ⟶ A]. ∀[f:(T List × A) ⟶ 𝔹]. ∀[L:T List]. ∀[ZZ:(T List × A) List].
[Z,X:T List × A].
  accum_split(g;x;f;concat(map(λp.(fst(p));ZZ [Z]))) = <ZZ, Z> ∈ ((T List × A) List × List × A) 
  supposing accum_split(g;x;f;L) = <ZZ [Z], X> ∈ ((T List × A) List × List × A)


Proof




Definitions occuring in Statement :  accum_split: accum_split(g;x;f;L) concat: concat(ll) map: map(f;as) append: as bs cons: [a b] nil: [] list: List bool: 𝔹 uimplies: supposing a uall: [x:A]. B[x] pi1: fst(t) lambda: λx.A[x] function: x:A ⟶ B[x] pair: <a, b> product: x:A × B[x] 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] implies:  Q prop: subtype_rel: A ⊆B pi1: fst(t) so_apply: x[s] all: x:A. B[x] guard: {T} accum_split: accum_split(g;x;f;L) top: Top so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] and: P ∧ Q pi2: snd(t) or: P ∨ Q uiff: uiff(P;Q) not: ¬A false: False cons: [a b] spreadn: spread3 decidable: Dec(P) assert: b ifthenelse: if then else fi  btrue: tt append: as bs so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] bfalse: ff bool: 𝔹 unit: Unit it: iff: ⇐⇒ Q rev_implies:  Q is_accum_splitting: is_accum_splitting(T;A;L;LL;L2;f;g;x) ge: i ≥  le: A ≤ B satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] cand: c∧ B nat: subtract: m less_than': less_than'(a;b) true: True listp: List+ squash: T concat: concat(ll) sq_type: SQType(T) bnot: ¬bb
Lemmas referenced :  last_induction all_wf list_wf equal_wf accum_split_wf append_wf cons_wf nil_wf concat_wf map_wf is_accum_splitting_wf bool_wf list_accum_nil_lemma list-cases null_nil_lemma btrue_wf null_cons_lemma bfalse_wf append_is_nil and_wf null_wf3 btrue_neq_bfalse product_subtype_list length_of_nil_lemma length-append subtype_rel_list top_wf list_accum_append list_accum_cons_lemma set_wf decidable__assert list_ind_nil_lemma list_ind_cons_lemma equal-wf-T-base assert_wf bnot_wf not_wf uiff_transitivity eqtt_to_assert assert_of_null iff_transitivity iff_weakening_uiff eqff_to_assert assert_of_bnot length_wf length_of_cons_lemma non_neg_length satisfiable-full-omega-tt intformand_wf intformle_wf itermConstant_wf itermVar_wf intformeq_wf itermAdd_wf int_formula_prop_and_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_eq_lemma int_term_value_add_lemma int_formula_prop_wf hd_wf listp_properties cons_neq_nil length_wf_nat nat_wf decidable__lt 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 add-zero le-add-cancel less_than_wf reduce_hd_cons_lemma tl_wf reduce_tl_cons_lemma map_cons_lemma map_nil_lemma concat-single accum_split_inverse reduce_nil_lemma pi1_wf_top subtype_rel_product squash_wf true_wf last_lemma last_wf iff_weakening_equal bool_cases subtype_base_sq bool_subtype_base general-append-cancellation ge_wf length_cons_ge_one map_append_sq concat_append bool_cases_sqequal assert-bnot
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut thin extract_by_obid sqequalHypSubstitution isectElimination hypothesisEquality sqequalRule lambdaEquality productEquality cumulativity hypothesis because_Cache functionEquality functionExtensionality applyEquality independent_pairEquality productElimination setElimination rename setEquality independent_functionElimination lambdaFormation spreadEquality dependent_functionElimination isect_memberEquality axiomEquality equalityTransitivity equalitySymmetry universeEquality voidElimination voidEquality independent_pairFormation applyLambdaEquality unionElimination independent_isectElimination dependent_set_memberEquality promote_hyp hypothesis_subsumption equalityElimination baseClosed impliesFunctionality natural_numberEquality dependent_pairFormation int_eqEquality intEquality computeAll addEquality minusEquality hyp_replacement imageMemberEquality imageElimination equalityUniverse levelHypothesis instantiate inrFormation

Latex:
\mforall{}[A,T:Type].  \mforall{}[x:A].  \mforall{}[g:(T  List  \mtimes{}  A)  {}\mrightarrow{}  A].  \mforall{}[f:(T  List  \mtimes{}  A)  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[L:T  List].
\mforall{}[ZZ:(T  List  \mtimes{}  A)  List].  \mforall{}[Z,X:T  List  \mtimes{}  A].
    accum\_split(g;x;f;concat(map(\mlambda{}p.(fst(p));ZZ  @  [Z])))  =  <ZZ,  Z> 
    supposing  accum\_split(g;x;f;L)  =  <ZZ  @  [Z],  X>



Date html generated: 2018_05_21-PM-08_07_48
Last ObjectModification: 2017_07_26-PM-05_43_30

Theory : general


Home Index