### Nuprl Lemma : split_tail_rel

`∀[A:Type]. ∀[f:A ⟶ 𝔹]. ∀[L:A List].  (((fst(split_tail(L | ∀x.f[x]))) @ (snd(split_tail(L | ∀x.f[x])))) = L ∈ (A List))`

Proof

Definitions occuring in Statement :  split_tail: `split_tail(L | ∀x.f[x])` append: `as @ bs` list: `T List` bool: `𝔹` uall: `∀[x:A]. B[x]` so_apply: `x[s]` pi1: `fst(t)` pi2: `snd(t)` function: `x:A ⟶ B[x]` universe: `Type` equal: `s = t ∈ T`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` so_lambda: `λ2x.t[x]` so_apply: `x[s]` all: `∀x:A. B[x]` implies: `P `` Q` prop: `ℙ` split_tail: `split_tail(L | ∀x.f[x])` so_lambda: `so_lambda(x,y,z.t[x; y; z])` top: `Top` so_apply: `x[s1;s2;s3]` pi1: `fst(t)` pi2: `snd(t)` append: `as @ bs` bool: `𝔹` unit: `Unit` it: `⋅` btrue: `tt` uiff: `uiff(P;Q)` and: `P ∧ Q` uimplies: `b supposing a` ifthenelse: `if b then t else f fi ` bfalse: `ff` exists: `∃x:A. B[x]` or: `P ∨ Q` sq_type: `SQType(T)` guard: `{T}` bnot: `¬bb` assert: `↑b` false: `False` squash: `↓T` true: `True` subtype_rel: `A ⊆r B` iff: `P `⇐⇒` Q` rev_implies: `P `` Q`
Lemmas referenced :  list_induction equal_wf list_wf append_wf split_tail_wf pi1_wf pi2_wf list_ind_nil_lemma list_ind_cons_lemma bool_wf nil_wf eqtt_to_assert eqff_to_assert bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot list_ind_wf cons_wf and_wf squash_wf true_wf subtype_rel_self iff_weakening_equal
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt introduction cut thin extract_by_obid sqequalHypSubstitution isectElimination hypothesisEquality sqequalRule lambdaEquality hypothesis applyEquality productEquality lambdaFormation equalityTransitivity equalitySymmetry dependent_functionElimination independent_functionElimination because_Cache isect_memberEquality voidElimination voidEquality rename universeIsType axiomEquality functionIsType functionEquality universeEquality productElimination unionElimination equalityElimination independent_isectElimination dependent_pairFormation promote_hyp instantiate cumulativity independent_pairEquality dependent_set_memberEquality independent_pairFormation applyLambdaEquality setElimination imageElimination natural_numberEquality imageMemberEquality baseClosed

Latex:
\mforall{}[A:Type].  \mforall{}[f:A  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[L:A  List].
(((fst(split\_tail(L  |  \mforall{}x.f[x])))  @  (snd(split\_tail(L  |  \mforall{}x.f[x]))))  =  L)

Date html generated: 2019_10_15-AM-10_54_53
Last ObjectModification: 2018_09_27-AM-10_18_49

Theory : list!

Home Index