Nuprl Lemma : wfterm-accum_wf_ctt1

[m:X:?CubicalContext
    ⟶ vs:(varname() List)
    ⟶ f:CttOp
    ⟶ L:{L:CttMeaningTriple List| 
          vdf-eq(?CubicalContext;ctt-binder-context 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: 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: a lambda: λx.A[x] function: x:A ⟶ B[x] equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T so_lambda: λ2y.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