Nuprl Lemma : accum_split_inverse
∀[A,T:Type]. ∀[x:A]. ∀[g:(T List × A) ⟶ A]. ∀[f:(T List × A) ⟶ 𝔹]. ∀[L:T List]. ∀[LL:(T List × A) List]. ∀[X:T List].
∀[z:A].
L = (concat(map(λp.(fst(p));LL)) @ X) ∈ (T List)
supposing accum_split(g;x;f;L) = <LL, X, z> ∈ ((T List × A) List × T 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
,
list: T List
,
bool: 𝔹
,
uimplies: b 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: s = t ∈ T
Definitions unfolded in proof :
uall: ∀[x:A]. B[x]
,
member: t ∈ T
,
uimplies: b supposing a
,
so_lambda: λ2x.t[x]
,
prop: ℙ
,
so_apply: x[s]
,
all: ∀x:A. B[x]
,
implies: P
⇒ Q
,
and: P ∧ Q
,
subtype_rel: A ⊆r B
,
top: Top
,
pi1: fst(t)
,
pi2: snd(t)
,
is_accum_splitting: is_accum_splitting(T;A;L;LL;L2;f;g;x)
,
squash: ↓T
,
true: True
Lemmas referenced :
bool_wf,
true_wf,
squash_wf,
append_wf,
concat_wf,
map_wf,
equal_wf,
and_wf,
length_wf,
pi2_wf,
top_wf,
subtype_rel_product,
pi1_wf_top,
is_accum_splitting_wf,
list_wf,
set_wf,
accum_split_wf
Rules used in proof :
sqequalSubstitution,
sqequalTransitivity,
computationStep,
sqequalReflexivity,
isect_memberFormation,
introduction,
cut,
thin,
lemma_by_obid,
sqequalHypSubstitution,
isectElimination,
hypothesisEquality,
hypothesis,
productEquality,
sqequalRule,
lambdaEquality,
spreadEquality,
lambdaFormation,
setElimination,
rename,
productElimination,
independent_pairFormation,
applyEquality,
because_Cache,
independent_isectElimination,
isect_memberEquality,
voidElimination,
voidEquality,
equalityUniverse,
levelHypothesis,
addLevel,
equalitySymmetry,
dependent_set_memberEquality,
setEquality,
equalityTransitivity,
imageElimination,
natural_numberEquality,
imageMemberEquality,
baseClosed,
independent_pairEquality,
dependent_functionElimination,
independent_functionElimination,
axiomEquality,
functionEquality,
universeEquality
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{}[LL:(T List \mtimes{} A) List]. \mforall{}[X:T List]. \mforall{}[z:A].
L = (concat(map(\mlambda{}p.(fst(p));LL)) @ X) supposing accum\_split(g;x;f;L) = <LL, X, z>
Date html generated:
2016_05_15-PM-05_55_11
Last ObjectModification:
2016_01_16-PM-00_36_54
Theory : general
Home
Index