Nuprl Lemma : term-induction

[opr:Type]. ∀[P:term(opr) ⟶ ℙ].
  ((∀v:{v:varname()| ¬(v nullvar() ∈ varname())} P[varterm(v)])
   (∀bts:bound-term(opr) List. ((∀bt:bound-term(opr). ((bt ∈ bts)  P[snd(bt)]))  (∀f:opr. P[mkterm(f;bts)])))
   {∀t:term(opr). P[t]})


Proof




Definitions occuring in Statement :  bound-term: bound-term(opr) mkterm: mkterm(opr;bts) varterm: varterm(v) term: term(opr) nullvar: nullvar() varname: varname() l_member: (x ∈ l) list: List uall: [x:A]. B[x] prop: guard: {T} so_apply: x[s] pi2: snd(t) all: x:A. B[x] not: ¬A implies:  Q set: {x:A| B[x]}  function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  guard: {T} uall: [x:A]. B[x] implies:  Q all: x:A. B[x] member: t ∈ T so_lambda: λ2x.t[x] prop: not: ¬A false: False so_apply: x[s] so_lambda: so_lambda3 subtype_rel: A ⊆B l_member: (x ∈ l) exists: x:A. B[x] spreadn: spread3 cand: c∧ B int_seg: {i..j-} nat: lelt: i ≤ j < k and: P ∧ Q ge: i ≥  decidable: Dec(P) or: P ∨ Q uimplies: supposing a satisfiable_int_formula: satisfiable_int_formula(fmla) bound-term: bound-term(opr) pi2: snd(t) le: A ≤ B less_than: a < b squash: T so_apply: x[s1;s2;s3]
Lemmas referenced :  term-ind_wf varname_wf not_wf equal-wf-T-base nullvar_wf istype-void list_wf bound-term_wf int_seg_wf length_wf nat_properties decidable__le full-omega-unsat intformand_wf intformnot_wf intformle_wf itermConstant_wf itermVar_wf istype-int int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_wf istype-le istype-less_than subtype_rel-equal l_member_wf select_wf int_seg_properties decidable__lt intformless_wf int_formula_prop_less_lemma mkterm_wf varterm_wf term_wf istype-universe
Rules used in proof :  sqequalSubstitution sqequalRule sqequalReflexivity sqequalTransitivity computationStep isect_memberFormation_alt lambdaFormation_alt rename cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality hypothesis lambdaEquality_alt applyEquality functionExtensionality setEquality baseClosed setIsType universeIsType functionIsType equalityIstype inhabitedIsType because_Cache productElimination closedConclusion natural_numberEquality dependent_set_memberEquality_alt setElimination independent_pairFormation dependent_functionElimination unionElimination independent_isectElimination approximateComputation independent_functionElimination dependent_pairFormation_alt int_eqEquality Error :memTop,  voidElimination productIsType equalityTransitivity equalitySymmetry applyLambdaEquality imageElimination universeEquality instantiate

Latex:
\mforall{}[opr:Type].  \mforall{}[P:term(opr)  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}v:\{v:varname()|  \mneg{}(v  =  nullvar())\}  .  P[varterm(v)])
    {}\mRightarrow{}  (\mforall{}bts:bound-term(opr)  List
                ((\mforall{}bt:bound-term(opr).  ((bt  \mmember{}  bts)  {}\mRightarrow{}  P[snd(bt)]))  {}\mRightarrow{}  (\mforall{}f:opr.  P[mkterm(f;bts)])))
    {}\mRightarrow{}  \{\mforall{}t:term(opr).  P[t]\})



Date html generated: 2020_05_19-PM-09_54_30
Last ObjectModification: 2020_03_09-PM-04_08_36

Theory : terms


Home Index