Nuprl Lemma : term-induction1

[opr:Type]. ∀[P:term(opr) ⟶ ℙ].
  ((∀v:{v:varname()| ¬(v nullvar() ∈ varname())} P[varterm(v)])
   (∀f:opr. ∀bts:bound-term(opr) List.  ((∀i:ℕ||bts||. P[snd(bts[i])])  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() select: L[n] length: ||as|| list: List int_seg: {i..j-} 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] natural_number: $n universe: Type equal: t ∈ T
Definitions unfolded in proof :  guard: {T} uall: [x:A]. B[x] implies:  Q all: x:A. B[x] so_lambda: λ2x.t[x] member: t ∈ T prop: subtype_rel: A ⊆B nat: so_apply: x[s] sq_stable: SqStable(P) squash: T uimplies: supposing a coterm-fun: coterm-fun(opr;T) varterm: varterm(v) mkterm: mkterm(opr;bts) int_seg: {i..j-} ge: i ≥  lelt: i ≤ j < k and: P ∧ Q decidable: Dec(P) or: P ∨ Q false: False le: A ≤ B uiff: uiff(P;Q) not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] bound-term: bound-term(opr) less_than: a < b pi2: snd(t)
Lemmas referenced :  uniform-comp-nat-induction term_wf le_wf term-size_wf istype-nat term-ext sq_stable__le istype-le subtype_rel_transitivity coterm-fun_wf subtype_rel_weakening ext-eq_inversion term_size_var_lemma term_size_mkterm_lemma term-size-positive mkterm_wf subtract_wf nat_properties decidable__le add-is-int-iff full-omega-unsat intformand_wf intformnot_wf intformle_wf itermConstant_wf itermSubtract_wf itermVar_wf itermAdd_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_subtract_lemma int_term_value_var_lemma int_term_value_add_lemma int_formula_prop_wf false_wf decidable__lt intformless_wf int_formula_prop_less_lemma istype-less_than int_seg_wf length_wf list_wf varname_wf lsum_wf pi2_wf l_member_wf bound-term_wf select_wf int_seg_properties subtype_rel_self nullvar_wf istype-void varterm_wf istype-universe summand-le-lsum non_neg_length select_member
Rules used in proof :  sqequalSubstitution sqequalRule sqequalReflexivity sqequalTransitivity computationStep isect_memberFormation_alt lambdaFormation_alt cut thin introduction extract_by_obid sqequalHypSubstitution isectElimination lambdaEquality_alt functionEquality setEquality hypothesisEquality hypothesis applyEquality because_Cache setElimination rename independent_functionElimination imageMemberEquality baseClosed imageElimination setIsType universeIsType independent_isectElimination inhabitedIsType unionElimination dependent_functionElimination Error :memTop,  natural_numberEquality productElimination dependent_set_memberEquality_alt independent_pairFormation pointwiseFunctionality equalityTransitivity equalitySymmetry promote_hyp baseApply closedConclusion approximateComputation dependent_pairFormation_alt int_eqEquality voidElimination productIsType productEquality addEquality equalityIstype isectIsType functionIsType instantiate universeEquality applyLambdaEquality

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



Date html generated: 2020_05_19-PM-09_54_24
Last ObjectModification: 2020_03_09-PM-04_08_33

Theory : terms


Home Index