Nuprl Lemma : concat-decomp

∀[T:Type]
  ∀ll:T List List. ∀x:T.
    ((x ∈ concat(ll))
    ⇐⇒ ∃ll1,ll2:T List List
         ∃l1,l2:T List
          ((concat(ll) = (concat(ll1) @ (l1 @ [x] @ l2) @ concat(ll2)) ∈ (T List))
          ∧ (ll = (ll1 @ [l1 @ [x] @ l2] @ ll2) ∈ (T List List))))


Proof




Definitions occuring in Statement :  l_member: (x ∈ l),  concat: concat(ll),  append: as @ bs,  cons: [a / b],  nil: [],  list: T List,  uall: ∀[x:A]. B[x],  all: ∀x:A. B[x],  exists: ∃x:A. B[x],  iff: P ⇐⇒ Q,  and: P ∧ Q,  universe: Type,  equal: s = t ∈ T
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  all: ∀x:A. B[x],  iff: P ⇐⇒ Q,  and: P ∧ Q,  implies: P ⇒ Q,  exists: ∃x:A. B[x],  member: t ∈ T,  prop: ℙ,  so_lambda: λ2x.t[x],  so_apply: x[s],  rev_implies: P ⇐ Q,  append: as @ bs,  so_lambda: so_lambda(x,y,z.t[x; y; z]),  top: Top,  so_apply: x[s1;s2;s3],  subtype_rel: A ⊆r B,  uimplies: b supposing a,  cand: A c∧ B,  or: P ∨ Q,  guard: {T}
Lemmas referenced :  exists_wf,  list_wf,  l_member_wf,  equal_wf,  concat_wf,  append_wf,  cons_wf,  nil_wf,  length_wf,  list_ind_cons_lemma,  list_ind_nil_lemma,  length-append,  member-concat,  iff_wf,  l_member_decomp,  length_wf_nat,  nat_wf,  concat_append,  concat-cons,  concat-nil,  append_nil_sq,  subtype_rel_list,  top_wf,  or_wf,  member_wf,  cons_member,  member_append
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation,  lambdaFormation,  cut,  independent_pairFormation,  sqequalHypSubstitution,  productElimination,  thin,  introduction,  extract_by_obid,  isectElimination,  hypothesisEquality,  hypothesis,  sqequalRule,  lambdaEquality,  productEquality,  applyLambdaEquality,  dependent_functionElimination,  isect_memberEquality,  voidElimination,  voidEquality,  addLevel,  independent_functionElimination,  because_Cache,  universeEquality,  dependent_set_memberEquality,  equalityTransitivity,  equalitySymmetry,  applyEquality,  independent_isectElimination,  hyp_replacement,  setElimination,  rename,  dependent_pairFormation,  unionElimination,  inlFormation,  inrFormation

Latex:
\mforall{}[T:Type]
    \mforall{}ll:T  List  List.  \mforall{}x:T.
        ((x  \mmember{}  concat(ll))
        \mLeftarrow{}{}\mRightarrow{}  \mexists{}ll1,ll2:T  List  List
                  \mexists{}l1,l2:T  List
                    ((concat(ll)  =  (concat(ll1)  @  (l1  @  [x]  @  l2)  @  concat(ll2)))
                    \mwedge{}  (ll  =  (ll1  @  [l1  @  [x]  @  l2]  @  ll2))))



Date html generated: 2019_06_20-PM-01_46_25
Last ObjectModification: 2018_08_24-PM-11_48_13

Theory : list_1


Home Index