Nuprl Lemma : bound-terms-accum_wf

[opr:Type]. ∀[P:term(opr) ⟶ ℙ]. ∀[Param:Type]. ∀[C:Param ⟶ (varname() List × hered-term(opr;t.P[t])) ⟶ Type].
[bts:(varname() List × hered-term(opr;t.P[t])) List].
[f:very-dep-fun(Param;varname() List × hered-term(opr;t.P[t]);a,bt.C[a;bt])]. ∀[g:a:Param
                                                                                   ⟶ bt:{bt:varname() List
                                                                                          × hered-term(opr;t.P[t])| 
                                                                                          (bt ∈ bts)} 
                                                                                   ⟶ C[a;bt]].
  (bound-terms-accum(L,bt.f[L;bt];a,bt.g[a;bt];bts)
   ∈ {L:(a:Param × b:varname() List × hered-term(opr;t.P[t]) × C[a;b]) List| 
      vdf-eq(Param;f;L) ∧ (map(λx.(fst(snd(x)));L) bts ∈ ((varname() List × hered-term(opr;t.P[t])) List))} )


Proof




Definitions occuring in Statement :  bound-terms-accum: bound-terms-accum(L,bt.f[L; bt];param,bndtrm.g[param; bndtrm];bts) hered-term: hered-term(opr;t.P[t]) term: term(opr) varname: varname() very-dep-fun: very-dep-fun(A;B;a,b.C[a; b]) vdf-eq: vdf-eq(A;f;L) l_member: (x ∈ l) map: map(f;as) list: List uall: [x:A]. B[x] prop: so_apply: x[s1;s2] so_apply: x[s] pi1: fst(t) pi2: snd(t) and: P ∧ Q member: t ∈ T set: {x:A| B[x]}  lambda: λx.A[x] function: x:A ⟶ B[x] product: x:A × B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T bound-terms-accum: bound-terms-accum(L,bt.f[L; bt];param,bndtrm.g[param; bndtrm];bts) so_lambda: λ2x.t[x] so_apply: x[s] prop: subtype_rel: A ⊆B uimplies: supposing a all: x:A. B[x] so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] guard: {T} and: P ∧ Q istype: istype(T) pi1: fst(t) pi2: snd(t) implies:  Q cand: c∧ B respects-equality: respects-equality(S;T)
Lemmas referenced :  dep-accum_wf list_wf varname_wf hered-term_wf term_wf l_member_wf subtype_rel_dep_function very-dep-fun-subtype-domain list-subtype subtype_rel_sets vdf-eq_wf subtype_rel_list subtype_rel_product equal_wf map_wf pi1_wf pi2_wf subtype_rel_set equal_functionality_wrt_subtype_rel2 respects-equality-list respects-equality-set-trivial very-dep-fun_wf istype-universe
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt introduction cut sqequalRule extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality setEquality productEquality hypothesis lambdaEquality_alt applyEquality universeIsType because_Cache functionExtensionality instantiate cumulativity universeEquality productIsType setIsType independent_isectElimination setElimination rename lambdaFormation_alt inhabitedIsType equalityTransitivity equalitySymmetry dependent_functionElimination productElimination independent_pairFormation independent_functionElimination equalityIstype axiomEquality functionIsType isect_memberEquality_alt isectIsTypeImplies

Latex:
\mforall{}[opr:Type].  \mforall{}[P:term(opr)  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[Param:Type].  \mforall{}[C:Param
                                                                                                          {}\mrightarrow{}  (varname()  List  \mtimes{}  hered-term(opr;t.P[t]))
                                                                                                          {}\mrightarrow{}  Type].
\mforall{}[bts:(varname()  List  \mtimes{}  hered-term(opr;t.P[t]))  List].
\mforall{}[f:very-dep-fun(Param;varname()  List  \mtimes{}  hered-term(opr;t.P[t]);a,bt.C[a;bt])].
\mforall{}[g:a:Param  {}\mrightarrow{}  bt:\{bt:varname()  List  \mtimes{}  hered-term(opr;t.P[t])|  (bt  \mmember{}  bts)\}    {}\mrightarrow{}  C[a;bt]].
    (bound-terms-accum(L,bt.f[L;bt];a,bt.g[a;bt];bts)  \mmember{}  \{L:(a:Param
                                                                                                              \mtimes{}  b:varname()  List  \mtimes{}  hered-term(opr;t.P[t])
                                                                                                              \mtimes{}  C[a;b])  List| 
                                                                                                              vdf-eq(Param;f;L)
                                                                                                              \mwedge{}  (map(\mlambda{}x.(fst(snd(x)));L)  =  bts)\}  )



Date html generated: 2020_05_19-PM-09_54_43
Last ObjectModification: 2020_03_10-PM-05_34_52

Theory : terms


Home Index