Nuprl Lemma : wfterm-accum_wf_ctt1

∀[m:X:?CubicalContext
    ⟶ vs:(varname() List)
    ⟶ f:CttOp
    ⟶ L:{L:CttMeaningTriple List| 
          vdf-eq(?CubicalContext;ctt-binder-context X vs f;L)
          ∧ (↑wf-term(λf.ctt-arity(f);λt.ctt-kind(t);mkterm(f;map(λx.(fst(snd(x)));L))))} 
    ⟶ [[X;mkterm(f;map(λx.(fst(snd(x)));L))]]]. ∀[varcase:X:?CubicalContext
                                                           ⟶ vs:(varname() List)
                                                           ⟶ v:{v:varname()| ¬(v = nullvar() ∈ varname())} 
                                                           ⟶ [[X;varterm(v)]]]. ∀[X:?CubicalContext]. ∀[t:CttTerm].
  (wfterm-accum(X;t)
   p,vs,v.varcase[p;vs;v]
   prm,vs,f,L.m[prm;vs;f;L]
   p0,ws,op,sofar,bt.ctt-binder-context[p0;ws;op;sofar;bt] ∈ [[X;t]])


Proof




Definitions occuring in Statement :  ctt-binder-context: ctt-binder-context,  ctt-meaning-triple: CttMeaningTriple,  ctt_meaning: [[ctxt;t]],  ctt-term: CttTerm,  ctt-arity: ctt-arity(x),  ctt-kind: ctt-kind(t),  ctt-op: CttOp,  cubical-context: ?CubicalContext,  wfterm-accum: wfterm-accum,  wf-term: wf-term(arity;sort;t),  mkterm: mkterm(opr;bts),  varterm: varterm(v),  nullvar: nullvar(),  varname: varname(),  vdf-eq: vdf-eq(A;f;L),  map: map(f;as),  list: T List,  assert: ↑b,  uall: ∀[x:A]. B[x],  so_apply: x[s1;s2;s3;s4;s5],  so_apply: x[s1;s2;s3;s4],  so_apply: x[s1;s2;s3],  pi1: fst(t),  pi2: snd(t),  not: ¬A,  and: P ∧ Q,  member: t ∈ T,  set: {x:A| B[x]} ,  apply: f a,  lambda: λx.A[x],  function: x:A ⟶ B[x],  equal: s = t ∈ T
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  so_lambda: λ2x y.t[x; y],  ctt-term: CttTerm,  so_apply: x[s1;s2],  ctt-meaning-triple: CttMeaningTriple
Lemmas referenced :  wfterm-accum_wf,  ctt-op_wf,  ctt-kind_wf,  term_wf,  ctt-arity_wf,  cubical-context_wf,  ctt_meaning_wf,  wfterm_wf,  ctt-binder-context_wf
Rules used in proof :  cut,  instantiate,  introduction,  extract_by_obid,  sqequalHypSubstitution,  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isectElimination,  thin,  cumulativity,  hypothesis,  lambdaEquality_alt,  hypothesisEquality,  universeIsType,  sqequalRule

Latex:
\mforall{}[m:X:?CubicalContext
        {}\mrightarrow{}  vs:(varname()  List)
        {}\mrightarrow{}  f:CttOp
        {}\mrightarrow{}  L:\{L:CttMeaningTriple  List| 
                    vdf-eq(?CubicalContext;ctt-binder-context  X  vs  f;L)
                    \mwedge{}  (\muparrow{}wf-term(\mlambda{}f.ctt-arity(f);\mlambda{}t.ctt-kind(t);mkterm(f;map(\mlambda{}x.(fst(snd(x)));L))))\} 
        {}\mrightarrow{}  [[X;mkterm(f;map(\mlambda{}x.(fst(snd(x)));L))]]].  \mforall{}[varcase:X:?CubicalContext
                                                                                                                      {}\mrightarrow{}  vs:(varname()  List)
                                                                                                                      {}\mrightarrow{}  v:\{v:varname()|  \mneg{}(v  =  nullvar())\} 
                                                                                                                      {}\mrightarrow{}  [[X;varterm(v)]]].
\mforall{}[X:?CubicalContext].  \mforall{}[t:CttTerm].
    (wfterm-accum(X;t)
      p,vs,v.varcase[p;vs;v]
      prm,vs,f,L.m[prm;vs;f;L]
      p0,ws,op,sofar,bt.ctt-binder-context[p0;ws;op;sofar;bt]  \mmember{}  [[X;t]])



Date html generated: 2020_05_21-AM-10_38_41
Last ObjectModification: 2020_03_18-PM-03_37_53

Theory : cubical!type!theory


Home Index